sql - Oracle 在为空或空时选择许多列
问题描述
当一个或多个列为空时,我试图从表中获取用户
我的意思是,像这样
SELECT ID_USER,
CASE
WHEN NAME IS NULL
THEN 'HAS NO NAME'
WHEN SECON_NAME IS NULL
THEN 'HAS NO SECOND'
WHEN USER_NUM IS NULL
THEN 'HAS NO NUM'
END AS STATUS
FROM USER
这可能吗?还是有另一种方法来获得它?
到目前为止,我只能得到 second_name 列
解决方案
CASE 表达式在第一个计算结果为 TRUE 的表达式之后退出。所以即使你有多个条件,你也只会得到其中一个。
为了获取具有 NULL 名称、NULL 第二个名称或 NULL num 的用户,您可以运行以下查询:
SELECT ID_USER
FROM USER
WHERE
NAME IS NULL
OR SECON_NAME IS NULL
OR USER_NUM IS NULL
如果您想查看它们被退回的原因,您可以使用
SELECT ID_USER,
CASE WHEN NAME IS NULL THEN 'HAS NO NAME ' else '' end
|| CASE WHEN SECON_NAME IS NULL THEN 'HAS NO SECOND ' else '' end
|| CASE WHEN USER_NUM IS NULL THEN 'HAS NO NUM' else '' end
as STATUS
FROM USER
WHERE
NAME IS NULL
OR SECON_NAME IS NULL
OR USER_NUM IS NULL
推荐阅读
- angular - 从多个组件更新服务中变量的值
- python - 数据更改时如何将“增量”值重置为 1?
- python - Pydrive:更改共享驱动器上文件的元数据
- ios - 如何检测应用内购买过程是否正在进行?
- sql-server - 将 Loopback 4 过滤器转换为 SQL where 子句
- python - 如何在 Python 中向 Google 上的操作发送响应?
- batch-file - 从列表文件中远程获取序列号和型号并导出到排列好的excel
- c# - 网络摄像头捕获 c# Logitech
- swift - Swift/Firebase - 在以 UITextField 输入开头的随机 uid 下查询用户名
- android - 在装有 Android Q 的三星 Galaxy M01 设备中未检测到生物特征?