- 2014/04/28 Mon
-
DECLARE @blank CHAR = '' SELECT NULLIF(@blank, '') --NULL SELECT ISNULL(NULL, 10) --10 SELECT ISNULL(NULLIF(@blank, ''), 10) --*
ISNULLの戻りに第二引数の値を期待していたら"*"とか表示されてなんなんだー!と思っていたら、int、bigint、smallint、および tinyint (Transact-SQL)
http://technet.microsoft.com/ja-jp/library/ms187745.aspx整数を暗黙的に文字データ型に変換するとき、整数が大きすぎて文字型フィールドに格納できない場合、ASCII 文字コード 42 のアスタリスク (*) が SQL Server によって入力されます。
暗黙変換時の挙動でした。
知らなんだ。DECLARE @blank CHAR(2) = '' SELECT ISNULL(NULLIF(@blank, ''), 10) --10
CHAR(1)だったせいですね。 明日は出社できない状態になったので連続出勤は22で打ち止め。
気持ちを持て余して6kmくらい歩く。