select pu.KNWLG_ID from KMS_PROPERTY_USAGE pu where pu.IND_ATTR_ID in ('1','2','3') 要求in 条件中的每一个条件值都满足,要如何修改sql
时间: 2023-12-11 12:04:13 浏览: 69
要求 `in` 条件中的每一个条件值都满足,可以使用以下方式修改 SQL:
```sql
SELECT pu.KNWLG_ID
FROM KMS_PROPERTY_USAGE pu
WHERE EXISTS (
SELECT 1
FROM (
SELECT '1' AS IND_ATTR_ID FROM dual
UNION ALL
SELECT '2' AS IND_ATTR_ID FROM dual
UNION ALL
SELECT '3' AS IND_ATTR_ID FROM dual
) allowed_values
WHERE allowed_values.IND_ATTR_ID = pu.IND_ATTR_ID
HAVING COUNT(*) = 3
)
```
这个查询中使用了 `EXISTS` 和一个子查询来判断 `pu.IND_ATTR_ID` 是否都在 `('1', '2', '3')` 中。子查询中的三个 `SELECT` 语句用来生成允许的值列表,然后将之与 `pu.IND_ATTR_ID` 进行比较,如果全部匹配,则返回 true,否则返回 false。
需要注意的是,这个查询中 `('1', '2', '3')` 是硬编码的值,如果需要动态传参,可以将它们替换成绑定变量。
相关问题
df_A_0 = df_normalized_data[kms.labels_ == 0] df_A_1 = df_normalized_data[kms.labels_ == 1] df_A_2 = df_normalized_data[kms.labels_ == 2] df_A_3 = df_normalized_data[kms.labels_ == 3] df_A_4 = df_normalized_data[kms.labels_ == 4]
这段代码是对聚类结果进行处理的代码。假设使用 KMeans 算法将数据聚成了 5 类,那么上述代码就是将原始数据中被聚为第 0 类的数据提取出来赋值给 df_A_0,被聚为第 1 类的数据提取出来赋值给 df_A_1,以此类推,最终可以得到 5 个 DataFrame,分别包含了每一类的数据。这样可以方便后续对每一类数据进行不同的处理或分析。
如何使用循环输出df_A_0 = df_normalized_data[kms.labels_ == 0] df_A_1 = df_normalized_data[kms.labels_ == 1] df_A_2 = df_normalized_data[kms.labels_ == 2] df_A_3 = df_normalized_data[kms.labels_ == 3] df_A_4 = df_normalized_data
可以使用循环语句来遍历每一个聚类标签,然后根据标签提取出对应的数据,示例如下:
```
for i in range(5):
df_A = df_normalized_data[kms.labels_ == i]
print(f"df_A_{i}:")
print(df_A)
```
这个示例中使用 for 循环遍历了 5 个标签,每次提取对应标签的数据并赋值给 df_A,然后输出 df_A 的名称以及对应的数据。这样可以自动化地输出每一类的数据,避免了手动重复编写代码的麻烦。
阅读全文