【SQL Server】ISNULLでNULLのとき空文字にしようとしたら0が出力された【覚書】

【SQL Server】ISNULLでNULLのとき空文字にしようとしたら0が出力された【覚書】

はじめに

コジマです。

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)を
フォローしてくれたらうれしいです!

システムエンジニアのつらい部分のあるあるなんかをエンタメにしたチャンネルを作りました。
チャンネルはこちら
つらい部分も楽しくなればと思っているのでよかったらチャンネル登録や高評価してくれたらうれしいです。

もっと学びたい人はこちら

SQLをもっと学びたいエンジニアのためにおすすめのUdemy講座を紹介いたします!

SQLはじめましての人!まずあなたの3時間をください。
この講座でまずこれだけは覚えてくれ!という内容をしっかり押さえることができます。
SQLはプログラミング言語がなんであれ、システム開発に必要になります。
この講座を見て最低限必要な知識を身に着けて実践で貢献できるようになりましょう!
3時間で学ぶ SQL ・データベース 超入門【丁寧な解説+演習問題で SQL データ抽出の基本が身につく】標準 SQL

データベースの設計について学べる講座です。
設計について学べる教材は少ないので、実務でデータベースを触る人にはとてもうれしい講座です。

ちょっとニッチに感じるかもしれませんが、SQLのインデックスを学ぶことができる講座です。
よい性能でSQLを運用するためにはインデックスの理解は必要不可欠です。
CRUD書いて満足するエンジニアを出し抜きましょう。

気になった人はぜひ見てみてくださいね!

以上、コジマでした。


SQLカテゴリの最新記事