さて、タイトルは状況を十分に正しく説明することはできません。これで、列のあるテーブルができました
Table1
Columns0, CHAR(20), NOT NULL.
Columns1, CHAR(4), Allow Nulls.
Data : 'ARR '
Table2
Columns0, CHAR(20), NOT NULL.
Columns1, CHAR(4), NOT NULL.
Data : 'ARR '
次に、2つのテーブルを結合します。
SELECT (ISNULL(a.Columns1,'') + ISNULL(b.Columns1,'')) AS WhatEver
FROM Table1 a
left join Table2 b on a.Columns0 = b.Columns0
結果は'ARR ARR '
、これの代わりに次のように表示されます。'ARRARR '
なぜこれが起こるのですか?
編集2012/06/11:
苦労した後、私は次のようなことをすることになりました:
SELECT ISNULL(CONVERT(CHAR(4),a.Columns1),'') + ISNULL(b.Columns1,'')
その後、私だけが正しい結果を得る'ARR ARR '
しかし、私のデータ型はデータベースにあると確信CHAR(4)
しています。
みんなありがとう。
編集2012/08/06:
私が機能していることがわかったもう1つの解決策は、TABLE 2 COLUMN 1を(CHAR(4)、NULL)に変更することです。これは、ALTER TABLE [table_name] MODIFY [column_name] [column_data_type] [null |notnull]を介して実行できます。