在sql中的查询中返回列名

时间:2015-12-08 21:48:06

标签: mysql sql select

我的查询看起来像这样:

select * 
from resident 
where Resident_Sex is null or Resident_Date_Of_Birth is null or race_code is null.

并不总是只检查3列是否为空,它可能有更多。 我想知道是否有办法,而不是从这个表中选择*,选择让我们说出他遗失的常驻id和列名。

例如,它应该返回

resident_id column_name
----------- ------------
aaaaaaa     resident_sex
bbbbbbb     resident_sex
bbbbbbb     race_code   
ccccccc     resident_date_of_birth

而不是返回

 resident_id resident_sex race_code   Resident_date_of_birth
 ----------- ------------ ----------- -----------------------
 aaaaaaa     null         158         1995-02-18 00:00:00.000
 bbbbbbb     null         null        1928-07-15 00:00:00.000
 ccccccc     F            12          null     

显然表中有很多行和列,所以我不能做任何情况或if语句......

我希望自己清楚明白...... 提前谢谢你!

1 个答案:

答案 0 :(得分:1)

您可以使用一系列NULL操作对表格进行取消操作。然后只需选择包含SELECT resident_id, column_name FROM ( SELECT resident_id, 'resident_sex' AS column_name FROM mytable WHERE resident_sex IS NULL UNION ALL SELECT resident_id, 'race_code' FROM mytable WHERE race_code IS NULL UNION ALL SELECT resident_id, 'Resident_date_of_birth' FROM mytable WHERE Resident_date_of_birth IS NULL) AS t 值列的每一行:

NSUserDefaults