sql:' Union all'不能联合汉字领域

时间:2018-03-12 09:31:34

标签: sql sql-server

我尝试联合2个表,但是,1个字段有中文字符,并且联合不成功。但是,只有select语句可以显示汉字。

select id, ChineseName, Location, Scores
from ((select select id, ChineseName, Location, Scores from Table1)
union all
(select id, ChineseName, Location, Scores from Table2))t

在sql上运行会返回错误消息:

  

转换nvarchar值时转换失败'香港'到数据类型int。

删除字段ChineseName后,sql可以联合。

如何解决这个中国字段问题?

非常感谢

1 个答案:

答案 0 :(得分:0)

让我们开始讨论表定义

create table table1(
  id int identity(1,1) primary key, 
  ChineseName nvarchar(max), 
  Location nvarchar(max), 
  Scores int
)

create table table2(
  id int identity(1,1) primary key, 
  ChineseName nvarchar(max), 
  Location nvarchar(max), 
  Scores int
)

现在应用您的查询来获取数据(仅限小更改):

 select id, ChineseName, Location, Scores
from (
select id, ChineseName, Location, Scores from table1
union all
select id, ChineseName, Location, Scores from table2
 ) t

它有效,我也创建了测试环境,通过与您的表定义及其类型和数据进行比较来检查并找出您必须犯的错误:Test Environment