CASE文の結果が「??」や「????」となってしまいます。

zyoni
2013-06-04 11:49 1913 1
下記のSQL文を実行した後にデータを確認すると、CASE文の結果が「??」や「????」となってしまいます。
どなたかご教示ください。よろしくお願いします。
(SQL文)
CREATE VIEW [dbo].[V_T_Test]
AS SELECT ID,フラグ = case フラグ when 'True' then '現金売り' else '月極' end FROM [T_T_M顧客]

コメント

2013年 06月 04日 (17:50)
こんにちは。
イノ(inno)です。

このビューがあるデータベースの照合順序が日本語ではないようですね。
照合順序が日本語ではない場合、こういう問題が発生します。
さらに日本語が保存されるテーブルのカラムは必ずnvarchar,ncharで設定する必要があります。
その際に日本語をinsertする時も日本語の前に「N」を付けないといけません。
上記の問題の場合は下記のように日本語の「'現金売り'」前に「N」を付けて「N'現金売り'」で作成すれば解決できます。

CREATE VIEW [dbo].[V_T_Test]
AS SELECT ID,フラグ = case フラグ when 'True' then N'現金売り' else N'月極' end FROM [T_T_M顧客]