3

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

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

我正在使用的是:

select (foo is not null and foo)

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

4

4 回答 4

4
select coalesce(foo, false) from table
于 2013-03-06T13:11:52.737 回答
1

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

于 2013-03-06T13:15:14.303 回答
1

如果使用规范意味着标准化方式,而不是依赖于 DBMS/供应商,则使用 CASE WHEN。

ANSI简单:

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

Coalesce如其他答案所述。

他们的表现是一样的:Coalesce vs Case

于 2013-03-06T13:15:36.767 回答
0

您可以使用COALESCEISNULL

对于 MySQL,您还可以使用IFNULL


SELECT COALESCE(foo,false)

或者

SELECT ISNULL(foo,false)

或者

SELECT IFNULL(foo,false)
于 2013-03-06T13:17:54.190 回答