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,53213983,53213984,53213985,53213986,53213987,53213988,53213989) then 0 ELSE 1 END, CASE WHEN id IN (53213970,53213971,53213972,53213973,53213974,53213975,53213976,53213977,53213978,53213979,53213980,53213981,53213982,53213983,53213984,53213985,53213986,53213987,53213988,53213989) then phone end asc这条sql去掉phone的空值怎么
时间: 2023-08-01 18:10:30 浏览: 69
可以使用如下的 SQL 查询语句来去掉 "phone" 字段为空的数据:
```
SELECT *
FROM emm_task.tbl_scm_passenger
WHERE phone IS NOT NULL AND phone != ''
ORDER BY
CASE
WHEN id IN (53213970,53213971,53213972,53213973,53213974,53213975,53213976,53213977,53213978,53213979,53213980,53213981,53213982,53213983,53213984,53213985,53213986,53213987,53213988,53213989)
THEN 0
ELSE 1
END,
CASE
WHEN id IN (53213970,53213971,53213972,53213973,53213974,53213975,53213976,53213977,53213978,53213979,53213980,53213981,53213982,53213983,53213984,53213985,53213986,53213987,53213988,53213989)
THEN phone
END ASC;
```
此时,查询结果中的 "phone" 字段将不会包含空值。
相关问题
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,这一部分数据按照phone正序排序,其余数据按照时间降序
您的问题是一条 SQL 查询语句,它会从 `emm_task.tbl_scm_passenger` 表中查询数据,并按照以下条件排序:
1. 如果 `id` 字段的值是 53213970,53213971,53213972,53213973,53213974,53213975,53213976,53213977,53213978,53213979,53213980,53213981,53213982,则排序值为 0。
2. 如果 `id` 字段的值不是上述值,则排序值为 1。
3. 对于排序值为 1 的数据,按照 `phone` 字段正序排序。
4. 对于排序值为 2 的数据,按照时间降序排序。
具体的 SQL 查询语句如下:
```
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
```
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,53213983,53213984,53213985,53213986,53213987,53213988,53213989) THEN 0 ELSE 1 END,在指定集合中按照字段phone正序排序phone空值排在后面排序
这不是一个问题,而是一个 SQL 语句。这个 SQL 语句的作用是从表 `emm_task.tbl_scm_passenger` 中查询所有记录,并按照以下规则排序:
1. 如果记录的 id 字段的值在指定的集合中,则将这些记录排在前面,否则排在后面。
2. 对于排在前面的记录,不做任何排序。
3. 对于排在后面的记录,按照字段 `phone` 的值正序排序,其中空值排在后面。
这个 SQL 语句的实现方式是使用了 `CASE WHEN` 表达式来对记录进行分类,并使用 `ORDER BY` 子句来进行排序。
阅读全文