Sql server SQL Server:使用Union在Select上重新编码错误
我得到了多个表,都是相同的结构,包含相同的列。这些列都是Sql server SQL Server:使用Union在Select上重新编码错误,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我得到了多个表,都是相同的结构,包含相同的列。这些列都是varchar(250) 现在我有了一个查询,它通过UNION all连接所有表,并选择一个名为InsertX的列,该列包含“134856710602534”之类的值 我的问题是:在UNIONing所有表并选择InsertX列134856710602534后,将变成134 T 856710602534。所以逗号被弄乱了。我在SELECT查询中尝试了不同的命令,如CAST(InsertX为varchar(250))和Collate-Latin
varchar(250)
现在我有了一个查询,它通过UNION all
连接所有表,并选择一个名为InsertX
的列,该列包含“134856710602534”之类的值
我的问题是:在
UNION
ing所有表并选择InsertX
列134856710602534
后,将变成134 T 856710602534
。所以逗号被弄乱了。我在SELECT
查询中尝试了不同的命令,如CAST(InsertX为varchar(250))
和Collate-Latin1\u-General\u-CI\u-AS
,但没有任何帮助。您确定是原始SQL在转换它,而不是消耗它吗?我创建了以下文本,但仍然有逗号:
DECLARE @tbl1 TABLE (
COL1 VARCHAR(250)
);
DECLARE @tbl2 TABLE (
COL1 VARCHAR(250)
);
INSERT INTO @tbl1
( COL1 )
VALUES ( '134,856710602534' -- COL1 - varchar(250)
)
INSERT INTO @tbl2
( COL1 )
VALUES ( '134,856710602874' -- COL1 - varchar(250)
);
SELECT COL1
FROM @tbl1
UNION ALL
SELECT COL1
FROM @tbl2
问题是第三方应用程序。。。
无论如何,谢谢你的帮助 列和表的编码是什么?具有相同结构的多个表通常是设计不好的标志-该部分数据已嵌入到表名中。例如,拥有
男性员工
和女性员工
表格几乎肯定是不正确的。我知道这是一个非常糟糕的表格设计,而且我会用nvarchar制作。但是这些表是由第三方应用程序创建和使用的,我必须像处理它们那样处理它们:(如果我做对了,表的编码是拉丁文1_General_CI_ASNo collation,据我所知,它会弄乱逗号。而且,SQL Server从不隐式更改排序规则。联合不是问题。你的数据或代码不正确。