2013年7月22日月曜日

SELECT時にISNULLを含めた文字列結合が数値扱いになっちゃう [SQLServer]

SELECT時にISNULLを含めて文字列結合。

---------------------------------------------------------------------
SELECT '20' + ISNULL(MAX(YM), '0102') + '03' FROM DateTable

結果:125
---------------------------------------------------------------------

クォーテーションで囲んでるのに何故か数値扱い・・・

文字列に変換して~

---------------------------------------------------------------------
SELECT '20' + ISNULL(MAX(YM), CONVERT(VARCHAR, '0102')) + '03' FROM DateTable

結果:2010203
---------------------------------------------------------------------

惜しい・・・

---------------------------------------------------------------------
SELECT '20' + ISNULL(CONVERT(VARCHAR, MAX(YM)), '0101') + '01' FROM DateTable

結果:20010203
---------------------------------------------------------------------

なった。
NULLの時の値は問答無用でNULLじゃない場合の型と同じになるのね。

0 件のコメント:

コメントを投稿