where句なしでnull以外の値を選択する方法はありますか? 私はそれがこのようにできることを知っています
SELECT X, Y, Z
FROM T
WHERE X IS NOT NULL
しかし、whereを使用せずにselect句にnull 'filter'を入れる方法があるかどうか疑問に思っています
多分このようなものですか?
SELECT NOT_NULL(X), Y, Z
FROM T
タイ
where句なしでnull以外の値を選択する方法はありますか? 私はそれがこのようにできることを知っています
SELECT X, Y, Z
FROM T
WHERE X IS NOT NULL
しかし、whereを使用せずにselect句にnull 'filter'を入れる方法があるかどうか疑問に思っています
多分このようなものですか?
SELECT NOT_NULL(X), Y, Z
FROM T
タイ
いいえ、方法はありません。フィルターをかける必要がある場合は、WHERE句が必要です。そうは言っても、ISNULLまたはCOALESCEを使用して、nullから返される値を別の値に変更できます。
COALESCEをお探しですか?
すなわち
SELECT COALESCE(HasBananas, 'No') FROM Sometable
なぜでしょうか:)しかし、WHEREははるかに優れています。
ここでのトリックは、ON
何かを比較するNULL
と常にFALSE
偶数でNULL=NULL
あるJOIN 条件にありますFALSE
。
select * from t
join
(
select distinct x from t
) t1 on (t.x=t1.x);
値が NULL かどうかを確認し、結果でブール値として返すだけの場合は、次のようなものを使用できます。
SELECT CASE
WHEN X IS NULL THEN 0
ELSE 1
END AS XisNull,
Y,
Z
FROM T
フィルタリングするだけの場合は、WHERE ステートメントを使用します。それはそれのために作成されました:-)
これを行う正当な理由は見当たりませんが、本当に WHERE が必要ない場合は、JOIN 句でフィルター処理できます。
SELECT X, Y, Z
FROM T
JOIN (SELECT null a) Q ON X IS NOT NULL