1
サンプルコード:TSQLは+演算子の適用方法をどのように決定しますか?
declare @str nvarchar(100)
set @str = 5
set @str = @str + 2
select @str
コードの上には '7' に@str
を設定します。しかし、プラス記号は文字列を連結するために使用することもできます(例えば、そのような場合にはstr
は最後に '52'になります)。
私の質問は、+
が上記のような場合に文字列連結または算術演算であるべきかどうかをSQL Serverがどのように決定するのですか?
未処理の数値を 'varchar'型に格納しないでください。 –
はい、私は認識しています。ちょうど興味があった。 –
'+'の2つの値の型が異なる場合、より優先度の高い「勝」型 - ここでは 'int'は' varchar'より優先度が高いため、SQL Serverは両方の値を 'int'に変換します算術和を計算する。両方の値が 'varchar'の場合、文字列の連結が行われます。型の優先順位については、[公式MSDNドキュメント](https://docs.microsoft.com/en-us/sql/t-sql/data-types/data-type-precedence-transact-sql)を参照してください。 –