23

pgadminで手動でクリアしたテーブルから空の「テキスト」フィールドを取得しようとしています。最初はこれらのフィールドに''があり、次のようにクエリできます。

SELECT mystr, mystr1 FROM mytable WHERE mystr='' or mystr1=''

しかし、それらからテキストを削除してセルを空白のままにすると、それは機能しません。

それらの''を取得し、結果としてセルをクリアするクエリを作成するにはどうすればよいですか?または細胞だけをクリアしますか?

4

1 に答える 1

46
SELECT mystr, mystr1 
FROM mytable 
WHERE COALESCE(mystr, '') = '' 
   OR COALESCE(mystr1, '') = ''
    ;

説明:coalesce(a,b,c, ...)関数はリストを左から右にトラバースa,b,c,...し、最初の非 null 要素で停止します。a,b,c任意の式 (または定数) にすることができますが、同じ型を生成する (または同じ型に強制できる) 必要があります。

于 2013-01-05T15:49:19.633 に答える