仕事でSQLServerでのSQLを書いていたメモ
上司より「SQLServerは方言が結構多いよ」と言われていたけど、特に専門的に触っているわけじゃないので基本的なSQLを使っていたが、アレっと思った事。
自分はMySQLでDBを勉強していたのでその違い
ちなみに、SQLServerでは使っているSQLはTransact-SQLというMicrosoftがSQLServer向けに拡張したものらしいです。
表題の通り’ISNULL’についてです
ID DEPTNO SALARY
20170101 1001 200000
20150102 1002 220000
20140103 NULL 230000
20130401 1001 260000
20100401 NULL 300000
みたいな表の時に
SELECT ID,ISNULL(DEPTID,'FREE'),SALARY FROM SAMPLE;
こんな感じでISNULLすると、、、
ID DEPTNO SALARY
20170101 1001 200000
20150102 1002 220000
20140103 FREE 230000
20130401 1001 260000
20100401 FREE 300000
こんな感じになります。
ISNULL(第一引数, 第二引数)で
第一引数の列のNULLのところを第二引数に変換してくれます。
ORACLEでいうところのNVL?(ORACLEわからない)
MYSQLでISNULLするとNULLだと1が返ってNULLじゃないと0が返るとかだった気がしてたから、なんだろう、このISNULLは。。。って思って調べてみました。
そろそろ統一してくれないかなぁ笑
コメント