1. ホーム
  2. sql

[解決済み] 1回のテストでnull/empty/whitespaceの値をチェックする方法とは?

2022-11-18 18:27:23

質問

値がない(ヌル、空、またはすべてのスペース)列を返すために、1つのテストだけを使用するSELECT文を書きたいと思います。

これならいけると思ったのですが

SELECT column_name from table_name WHERE column_name NOT LIKE '%_%';

しかし、これはNULL値に対しては機能しません。

もちろん、私は

OR column_name IS NULL

と入力すればうまくいくのですが、1つのテストを使う方法が欲しいです。

どのように解決するのですか?

機能的には

SELECT column_name
  FROM table_name
 WHERE TRIM(column_name) IS NULL

そこでの問題は、COLUMN_NAMEに対するインデックスが使用されないということです。 それが選択的な条件である場合、TRIM(column_name)に対する関数ベースのインデックスを持つ必要があります。