0

我使用INSERT所有SELECTED数据到一个新表,但我添加了额外的字段IDS_EXIST,并确定每个数据是否有他们的 idsNOT 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

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

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

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

4

3 回答 3

2

是的,只要您使用IS NOT NULL使用NULL),它就会起作用。

您不能使用算术比较运算符(例如=<<>)来测试NULL

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

退货N

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

退货Y

于 2013-03-13T01:50:58.993 回答
1

not 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
于 2013-03-13T01:52:04.207 回答
0

你可以试试

选择 c.ID 为 null 且 c.UID 不为 null 且 C.SID 不为 null 的情况,然后 'Y' else 'N' end

于 2013-03-13T08:44:58.297 回答