我已经看到很多SO问题,其中有人在案例陈述中测试NULL值,但这个问题没有任何性质。我希望case语句的返回是'不是null' where子句的表达式。
这就是我所拥有的:
INSERT INTO table1 (Id) (
SELECT DISTINCT AId AS Id
FROM table2 As t2
INNER JOIN table3
ON (
...
)
WHERE CASE
WHEN test_value <> '' THEN (another_value IS NOT NULL)
END
)
这给出了错误:
关键字&#39;附近的语法错误是&#39;。
简而言之,如果测试值不是空字符串,那么我不想在table1中使用another_value = NULL的行。
我的程序需要传递2个案例
Case 1:
Row# test_value another_value ....
1 'tst' '919'
2 'tst' NULL
ONLY ROW ONE SHOULD BE INSERTED
Case 2:
Row# test_value another_value ....
1 '' '919'
2 '' NULL
BOTH ROWS SHOULD BE INSERTED
答案 0 :(得分:0)
你可以这样做:
WHERE CASE
WHEN test_value <> '' AND another_value IS NOT NULL THEN another_value
END
答案 1 :(得分:0)
试试这个:
WHERE ((isnull(test_value,'') <> '' and ISNULL(another_value,'') <> '') OR ISNULL(test_value,'') = '')