使用case when not in
时间: 2023-11-09 21:01:57 浏览: 149
好的,我明白了。针对您的问题,可以使用以下语法实现:
```
SELECT column_name,
CASE WHEN column_name NOT IN (value1, value2, ...) THEN 'Other'
ELSE column_name
END
FROM table_name;
```
其中,`column_name`是要进行判断的列名,`value1, value2, ...`是不包含在判断范围内的值,`Other`是当列值不在判断范围内时的替代值。
相关问题
case when not in
要在 CASE WHEN 语句中使用 NOT IN 条件,您可以按以下方式编写代码:
```sql
SELECT column_name,
CASE
WHEN column_name NOT IN ('value1', 'value2', 'value3') THEN 'Not In'
ELSE 'In'
END AS result
FROM table_name;
```
在上述代码中,您需要根据实际情况进行调整。column_name 是要进行条件判断的列名,('value1', 'value2', 'value3') 是要排除的值的列表,table_name 是要从中查询数据的表名。
在 CASE WHEN 结构中,使用 NOT IN 条件可以判断列值是否不包含在指定的值列表中。如果列值不在列表中,返回 "Not In";否则返回 "In"。
请注意,'value1', 'value2', 'value3' 是您要排除的特定值。您可以根据需要调整这些值或使用其他条件。
希望对您有所帮助!如果您有任何其他问题,请随时提问。
SELECT * FROM emm_task.tbl_scm_passenger ORDER BY CASE WHEN id IN (53213970,53213971,53213972,53213973,53213974,53213975,53213976,53213977,53213978,53213979,53213980,53213981,53213982) THEN 0 ELSE 1 END, CASE WHEN id NOT IN (53213970,53213971,53213972,53213973,53213974,53213975,53213976,53213977,53213978,53213979,53213980,53213981,53213982) THEN phone END ASC, CASE WHEN id NOT IN (53213970,53213971,53213972,53213973,53213974,53213975,53213976,53213977,53213978,53213979,53213980,53213981,53213982) THEN created_at END DESC修改sql让排序值为0的字段按照phone正序排序,其他的字段不变
可以将第一个 `CASE` 表达式中的 `0` 修改为 `phone`,并将第二个 `CASE` 表达式中的 `phone` 修改为 `created_at`,如下所示:
```
SELECT *
FROM emm_task.tbl_scm_passenger
ORDER BY
CASE
WHEN id IN (53213970,53213971,53213972,53213973,53213974,53213975,53213976,53213977,53213978,53213979,53213980,53213981,53213982) THEN phone
ELSE 1
END,
CASE
WHEN id NOT IN (53213970,53213971,53213972,53213973,53213974,53213975,53213976,53213977,53213978,53213979,53213980,53213981,53213982) THEN created_at
END DESC;
```
这样就可以让排序值为0的字段按照phone正序排序,其他的字段不变。
阅读全文