2013-03-13 59 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」年底