2013-03-13 61 views
0

我用INSERT所有SELECTED DATAS到一个新表,但我增加了额外的领域IDS_EXIST并确定每个数据都有自己的ID NOT NULL生病INSERT 'Y'但如果一个他们会变成NULL我会INSERT 'N'在SELECT语句中使用“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 

因为我知道一旦如果条件可以使用这样

SELECT IF('condition','value if true','value if false') 

我扭转我的查询多次,但仍然得到语法错误在查询

回答

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

是的,它会工作,只要您使用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

好是公平魁夷未提到语法错误,所以应用了某种努力。 – 2013-03-13 01:52:47

+1

rofl如果我没有测试它,我是如何得到语法错误的? – 2013-03-13 01:54:03

0

您可以尝试

选择情况下,当c.ID为null,并且c.UID不是null C.SID不为空,然后“Y”其他“N”年底