• ベストアンサー

WHEREでヌルをスルーしたい

いつもお世話になっております。 SQL文のワイルドカードについての質問なのですが、 SELECT 項目1 FROM 表 WHERE 項目1 LIKE '%' というSQLがあったとして、私は項目1のレコードがすべて返されるのかと思いました。 しかしこれだと項目1フィールドにNULLが入っている(何もデータが入っていない)場合、それは除かれてしまうようです。 NULLのレコードも含めてクエリを返してくれるような条件はあるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • cagoo
  • ベストアンサー率50% (1/2)
回答No.1

where 使わなければ全部返ってきますけど…。 どうしても、where を使いたければ where XXX like '%' or XXX is null とか。

guttten
質問者

お礼

それです!! 全部というか、WHEREで条件に引っかかったやつとヌルのを戻したかったので 。 早速試してみます^^ ありがとうございました!

その他の回答 (4)

noname#140971
noname#140971
回答No.5

補足: ? DBSelect("select * from table1 where isNull(項目_1, '') Like '%'") 1;aa02; 2;aa01; 3;; 4;bb01; 5;bb02;

noname#140971
noname#140971
回答No.4

<Table1> ID___項目_1 1____aa02 2____aa01 3 4____bb01 5____bb02 [イミディエイトウインドウ] ? DBSelect("select * from table1 where isNull(項目_1, 'a') Like 'a%'") 1;aa02; 2;aa01; 3;; こういうやり方も出来ないではないです。

回答No.3

#2回答者です。 #1さんの言う通りですね。今回の場合は、where句自体を書かず無条件の検索にすれば全件検索できます。

回答No.2

特定の列の値がNULLの行を条件指定して検索するには、 「列名 is null」 の条件を指定する必要があります。 これは標準SQLでもそうであり、SQL Serverに限らず多くのRDBMSも同様です。 今回の場合ですと、 「select 項目1 from 表名 where 項目1 like '%' or 項目1 is null」 になります。 なお、「項目1=null」という条件も書けますが、これは「項目1がnullの場合、真」という意味にはならず、「真になることはない」条件指定になるので注意してください。

関連するQ&A