好吧,标题不能足够正确地解释这种情况。现在就是这样,我有一个带有列的表
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 '
然后我将两张桌子连接在一起。
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:
我发现另一个可行的解决方案是将 TABLE 2 COLUMN 1 更改为 (CHAR(4), NULL)。这可以通过 ALTER TABLE [table_name] MODIFY [column_name] [column_data_type] [null|not null] 来完成