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()ansiSQLです。したがってSELECT (foo, false)、fooまたはfalseを指定します。

于 2013-03-06T13:15:14.303 に答える
1

canonicalで、DBMS /ベンダーに依存するのではなく、標準化された方法を意味する場合は、CASEWHENを使用します。

それは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

COALESCEまたは使用できますISNULL

MySQLの場合も使用できますIFNULL


SELECT COALESCE(foo,false)

また

SELECT ISNULL(foo,false)

また

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