首页 新闻 搜索 专区 学院

关于sql 语句的错误

0
悬赏园豆:10 [已解决问题] 解决于 2012-04-17 10:58

在查询管理器里面运行如下代码

select PlanID ,CorpID from TR_Corp2Plan
union select PlanID ,DeptInstantID from TR_Dept2Plan
union select PlanID,PosInstID from  TR_PosInst2Plan
union select PlanID,UID  from TR_Employee2Plan

所有表的字段都是NVARCHAR() 类型

提示我

Msg 468, Level 16, State 9, Line 1
无法解决 UNION 运算中 "Latin1_General_CI_AI" 和 "Chinese_PRC_CI_AS" 之间的排序规则冲突。

figofeng的主页 figofeng | 初学一级 | 园豆:5
提问于:2012-04-17 10:49
< >
分享
最佳答案
0

这里有个例子:

SELECT * FROM test_one
UNION
SELECT * FROM test_two

消息 468,级别 16,状态 9,服务器 ZQWANG\SQLEXPRESS,第 1 行
无法解决 UNION 运算中 "Chinese_Taiwan_Stroke_CI_AS" 和 "Latin1_General_CI_AS" 之间的排序规则冲突。

 

冲突的解决

针对有冲突的 列,  指定相同的排序规则.


SELECT  name COLLATE Chinese_Taiwan_Stroke_CI_AS AS name, val FROM test_one 
UNION
SELECT  name COLLATE Chinese_Taiwan_Stroke_CI_AS AS name, val FROM test_two

你对应更改一下,强制指定排序规则就OK了

收获园豆:10
artwl | 专家六级 |园豆:16526 | 2012-04-17 10:53

OK 了,非常感谢,接分。

figofeng | 园豆:5 (初学一级) | 2012-04-17 10:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册