规范的方法来映射null-> false

时间:2013-03-06 13:10:00

标签: sql

以下是什么是规范表达式:

NULL  -> false
false -> false
true  -> true

我正在使用的是:

select (foo is not null and foo)

这似乎工作正常,但我想知道是否有一个标准惯例。

4 个答案:

答案 0 :(得分:4)

select coalesce(foo, false) from table

答案 1 :(得分:1)

我只是查了一下。 COALESCE()是ansi SQL。所以SELECT (foo, false)会给foo或false。

答案 2 :(得分:1)

如果使用规范,则表示标准化方式,而非DBMS /供应商依赖,然后使用CASE WHEN。

ANSI,简单:

SELECT CASE WHEN (foo is null) 
            THEN false 
            ELSE foo 
       END 
       AS YourStuff
...

Coalesce,如其他答案中所述。

他们的表现相同:Coalesce vs Case

答案 3 :(得分:0)

您可以使用COALESCEISNULL

对于MySQL,您也可以使用IFNULL


SELECT COALESCE(foo,false)

SELECT ISNULL(foo,false)

SELECT IFNULL(foo,false)