如何关联两个排序规则collation不同的表?

[复制链接]
查看11 | 回复6 | 2005-10-30 17:05:33 | 显示全部楼层 |阅读模式
现要关联两个来自不同数据库的表,关联字段是字符型的,select语句出现错误,原来是数据库各自的排序规则不同。那该怎么办呢?
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
这个是 online book 上的,你可以自己参照下面的实验看看
USE tempdb
GO
CREATE TABLE TestTab (
id int,
GreekCol nvarchar(10) collate greek_ci_as,
LatinCol nvarchar(10) collate latin1_general_cs_as
)
INSERT TestTab VALUES (1, N'A', N'a')
GO
下面查询中的谓词具有排序规则冲突,因此产生错误:
SELECT *
FROM TestTab
WHERE GreekCol = LatinCol
下面是结果集。
Msg 446, Level 16, State 9, Server CTSSERV, Line 1
Cannot resolve collation conflict for equal to operation.
下面查询中的谓词在排序规则 greek_ci_as 中取值,因为右边表达式具有显式标志,优先于右边表达式的隐性标志:
SELECT *
FROM TestTab
WHERE GreekCol = LatinCol COLLATE greek_ci_as
下面是结果集。
id
GreekCol
LatinCol
----------- -------------------- --------------------
1 a
A
(1 row affected)
下面查询中的 case 表达式没有排
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
谢谢你,我试试!
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
不错的方法
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
呵呵 斑竹是说可以用吗? 我当时没有条件,没有实验
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
最初由 花好月不圆 发布
[B]呵呵 斑竹是说可以用吗? 我当时没有条件,没有实验 [/B]

可行啊,关于COLLATE的帮助建议楼主察看帮助。
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
问题解决了,谢谢各位的帮助!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行