[SQLServer]ISNULL

SQLServer

仕事で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は。。。って思って調べてみました。

 

そろそろ統一してくれないかなぁ笑

コメント

タイトルとURLをコピーしました