MSSQL を試しているときに、説明できない動作に遭遇しました。
NULL 値が varchar に追加され、次のクエリを実行するとどうなるかを調べていました。
SELECT
ISNULL(NULL + ' ', 'test')
結果 'te' が得られます。同様に、単語 test を他の単語に変更すると、最初の 2 文字しか取得できません。+ ' ' 内のスペースの数を増やすと、結果に余分な文字が表示されます (したがって、NULL + '[2 つのスペース]' は 'tes' になります)。何が起こっているのですか?
変数を宣言して NULL に設定すると、たとえば
DECLARE @testnull AS varchar(32)
SET @testnull = NULL
SELECT
ISNULL(@testnull + ' ', 'test')
次に、結果「テスト」を取得します(予想どおり)。