关于不同排序规则的奇怪查询结果

时间:2011-11-08 14:58:26

标签: sql-server collation sql-like

在开发过程中,我遇到了一个使用DD Macedonian_FYROM_90_CI_AS整理的奇怪场景。

declare @test_table  table
( numbers varchar(20) collate Macedonian_FYROM_90_CI_AS )

insert into @test_table values('0711110000000') 
insert into @test_table values('0711110000001')
insert into @test_table values('0711110000002')

select * from @test_table WHERE numbers like '071111%00000' 

它应返回0711110000000,但查询结果为空。

我使用SQL_Latin1_General_CP1_CI_AS排序规则在另一个数据库上尝试相同的测试,并且查询返回0711110000000

有没有人遇到同样的问题,或者可以解释一下?

2 个答案:

答案 0 :(得分:1)

这确实是一种奇怪的行为。我已经注意到它与其他排序规则(Slovenian_100_CI_AS,Macedonian_FYROM_100_CI_AS,Finnish_Swedish_100_CI_AS ......)虽然有些工作符合预期(Slovenian_CI_AS)在同一测试集上。

我决定向Microsoft Connect提交反馈意见。

答案 1 :(得分:0)

尝试:

select * from test_table WHERE numbers like '071111%00000'  COLLATE SQL_Latin1_General_Cp1_CS_AS