我在数据库中的不同对象中得到不同的排序规则......
执行查询时出现问题。 有人可以帮助我吗?
提前致谢
答案 0 :(得分:3)
您必须根据您希望进行连接(或where子句)的归类来指定
请参阅下面的示例,了解如何对此进行编码。
create table x( id int, name varchar(256) collate SQL_SwedishStd_Pref_CP1_CI_AS)
create table y( id int, name varchar(256) collate SQL_Latin1_General_CP1_CI_AS)
insert into x values (1, 'Filip')
insert into y values (1, 'Filip')
因此,如果您希望基于Latin1排序规则加入,请编写如下查询:
select *
from x
join y
on x.name collate SQL_Latin1_General_CP1_CI_AS = y.name
如果您希望基于瑞典语排序规则加入,请按以下方式编写查询:
select *
from x
join y
on x.name = y.name collate SQL_SwedishStd_Pref_CP1_CI_AS
如果通过错误地定义表创建了排序规则差异,则可以更改列以切换排序规则:
alter table x alter column name varchar(256) collate SQL_Latin1_General_CP1_CI_AS
如果您随后运行此类查询,则不会再出现错误:
select *
from x
join y
on x.name = y.name