はじめに
コジマです。
ISNULLを使ってNULLのとき空文字に置換しようとして
SELECT ISNULL(col, N'') FROM table ;
な感じでSQL書いたらなぜかNULLじゃなくて、「0」が出力されてきたんですよね。
恐らくなのですが、空文字に置換しようとしているカラムの方がtinyintだったのが原因かと。
空文字を0とみなすような内部処理があるのかなぁ。。
integerは大丈夫でした。
型を文字列に合わせてあげればいいかなと思って
以下のようにvarcharでCASTしてあげたらいけました。
SELECT ISNULL(CAST col as varchar(1)), N'') FROM table ;
さいごに
調べても出てこず。。
似た事象を経験した人は他にいないのかなぁ。覚書として残しておく。
この記事を面白いまたは役に立ったと思ってくれた方は是非私のTwitter(@kojimanotech)を
フォローしてくれたらうれしいです!
システムエンジニアのつらい部分のあるあるなんかをエンタメにしたチャンネルを作りました。
チャンネルはこちら
つらい部分も楽しくなればと思っているのでよかったらチャンネル登録や高評価してくれたらうれしいです。
以上、コジマでした。