わいえむねっと

Contents
Categories
Calendar
2014/04
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Monthly Archives
~2000/01
Recent Entries
RSS1.0
Templates
Information
Processed: 0.054 sec
Chashed: -
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.mi​crosoft.co​m/ja-jp/library/ms187745.a​spx
整数を暗黙的に文字データ型に変換するとき、整数が大きすぎて文字型フィールドに格納できない場合、ASCII 文字コード 42 のアスタリスク (*) が SQL Server によって入力されます。

暗黙変換時の挙動でした。
知らなんだ。

DECLARE @blank CHAR(2) = ''

SELECT ISNULL(NULLIF(@blank, ''), 10)
--10

CHAR(1)だったせいですね。 明日は出社できない状態になったので連続出勤は22で打ち止め。
気持ちを持て余して6kmくらい歩く。