2016-04-04 17 views
0

2文字のセル内容の最初の文字のみがnvarchar変数に保存されるように、内容として2文字のnvarcharを持つセルがあります。次のコードで保存されます。選択結果の最初の文字を格納する変数

DECLARE @RC NVARCHAR = (SELECT Value FROM @scoreTable WHERE Metric = 'RC') 


-- this returns 'ND' as expected 
SELECT Value FROM @scoreTable WHERE Metric = 'RC' 

-- but this returns 'N'! Why? 
SELECT @RC 

私は完全に困惑しています。両方の文字(セルのすべてのコンテンツ)を変数@RCに保存するにはどうすればよいですか?

答えて

3

あなたはSQL Serverで文字の種類の長さを宣言する必要があります:

DECLARE @RC NVARCHAR(255) = (SELECT Value FROM @scoreTable WHERE Metric = 'RC') 

SQL Serverの(すべてではありませんが、他のデータベース)では、あなたは常には、文字型で長さを使用する必要があります。デフォルトはコンテキストによって異なるので、デフォルトの長さに頼るとかなり混乱することがあります。

+0

素晴らしいです。ありがとう。 – fyodorfranz

関連する問題