ふと思ったSQLの話
ふと思ったSQLの話
IF @asdf IS NULL
BEGIN
-- @asdfがNULLだった場合にこういう処理をするよ!
END↑これが基本形でしょう。しかしだな。
@asdf = SELECT NVL(MAX(NOTNULL_COLUMN), 0) FROM TABLE1
IF @asdf IS NULL
BEGIN
-- 絶対ないが、@asdfがNULLだった場合はエラーを投げようか
ENDっていうコードをたまに見るのです。
そもそもそういうコードが存在すること自体無駄ですが、それは置いといて。
SQLのベースは英語だから@asdf = SELECT NVL(MAX(NOTNULL_COLUMN), 0) FROM TABLE1
IF @asdf WERE NULL
BEGIN
-- 絶対ないが、@asdfがNULLだった場合はエラーを投げようか
ENDと「絶対ないとプログラマが認識してる場合」にIS NULLのエイリアスとしてWERE NULL使えたらなんか使い道あるのかなと思いました。
その2
こんな書き方もあったら楽しいかもしれない。
こっちは仮に実装することになったらDB業者が悲鳴上げそう。UPDATE TABLE1 SET TABLE1.COLUMN2=TABLE2.COLUMN2 FROM TABLE2 WHERE TABLE1.COLUMN2 IS NULL
UPDATE TABLE1 SET TABLE1.COLUMN3=TABLE3.COLUMN3 FROM TABLE3 WHERE TABLE1.COLUMN2 WAS NULL