私はMicrosoft SQL Serverを使用しています(問題がある場合は2008 R2)
私が実行すると
select LEN('test')
予想通り4点取れました
しかし、今これを試してください:
declare @s varchar
set @s='test'
select LEN(@s)
そして結果は… 1
それは実際にどのように機能しますか?
私はMicrosoft SQL Serverを使用しています(問題がある場合は2008 R2)
私が実行すると
select LEN('test')
予想通り4点取れました
しかし、今これを試してください:
declare @s varchar
set @s='test'
select LEN(@s)
そして結果は… 1
それは実際にどのように機能しますか?
それは、もしあなたがするなら
SELECT @s
それは戻るだろう
t
それだけ。長さを指定する必要があります。
char および varcharから(Transact-SQL)
データ定義または変数宣言ステートメントで n が指定されていない場合、デフォルトの長さは 1 です。CAST 関数および CONVERT 関数を使用するときに n が指定されていない場合、デフォルトの長さは 30 です。
これを定義すると:
declare @s varchar
正確に 1 文字の長さvarchar
のを取得します。
絶対に何も悪いことはありませんLEN
!
あなたがする必要があるのは、変数を定義するときに明示的な長さを指定することですvarchar
declare @s varchar(20)
set @s='test'
select LEN(@s)
LEN
これで、 ...から 4 が返されるはずです。
注:使用するときは常に長さを指定することをお勧めします。そうしないと、このような驚きに遭遇することになります。....varchar