Sql “其中[value]不为null”的Case语句

Sql “其中[value]不为null”的Case语句,sql,null,case,where,Sql,Null,Case,Where,我见过很多这样的问题,有人在测试case语句中的空值,但与这个问题的性质无关。我希望case语句的返回是where子句的“is not null”表达式 这就是我所拥有的: INSERT INTO table1 (Id) ( SELECT DISTINCT AId AS Id FROM table2 As t2 INNER JOIN table3 ON ( ... ) WHERE CASE WHEN tes

我见过很多这样的问题,有人在测试case语句中的空值,但与这个问题的性质无关。我希望case语句的返回是where子句的“is not null”表达式

这就是我所拥有的:

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
)

你可以这样做:

WHERE CASE
        WHEN test_value <> '' AND another_value IS NOT NULL THEN another_value  
      END
试试这个:

WHERE ((isnull(test_value,'') <> '' and ISNULL(another_value,'') <> '') OR ISNULL(test_value,'') = '')

返回错误:在预期条件的上下文中指定的非布尔类型表达式底部示例在test_value!=,但是,当test_value=.@matrumz进行更新时,fails会过滤掉所有内容。所以基本上,如果该行的test_值有一个值,那么该行的另一个_值也必须有一个值。如果该行的test_值没有值,那么另一个_值有什么值无关紧要?我将运行这个。有关案例和结果,请参见更新的问题。
WHERE ((isnull(test_value,'') <> '' and ISNULL(another_value,'') <> '') OR ISNULL(test_value,'') = '')