在SELECT语句中使用“IF”来检查是否存在另一列

时间:2013-03-13 01:49:24

标签: mysql sql

我使用INSERT所有SELECTED数据到新表,但我添加了额外的字段IDS_EXIST,并确定每个数据是否有其ID NOT NULL生成{{1但是如果其中一个转向INSERT 'Y',我会NULL

是否可以在select语句中使用if这样的条件?

INSERT 'N'

因为我知道IF条件可以像这样使用

SELECT IF(C.ID != NULL AND C.UID != NULL AND C.SID != NULL,'Y','N'),
       C.NAME,
       C.ADDRESS,
       C.DATE 
FROM CLAIMS C

我多次反转我的查询但仍然在查询中出现语法错误

3 个答案:

答案 0 :(得分:2)

是的,只要您使用IS NOT NULLworking with NULL values),它就会有效。

  

您无法使用=<<>等算术比较运算符来测试NULL

SELECT IF(1 != 2 AND 1 != NULL,'Y','N')

返回N

SELECT IF(1 != 2 AND 1 IS NOT NULL,'Y','N')

返回Y

答案 1 :(得分:1)

NULL比较时,请使用IS NOT NULL

SELECT   IF(C.ID IS NOT NULL AND C.UID IS NOT NULL AND C.SID IS NOT NULL,'Y','N'),
         C.NAME,
         C.ADDRESS,
         C.DATE 
FROM     CLAIMS C

答案 2 :(得分:0)

您可以尝试

选择c.ID为空且c.UID不为空且C.SID不为空的情况,然后'Y',否则'N'结束