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从不隐式更改排序规则。联合不是问题。你的数据或代码不正确。