Sql Server 聯合查詢的排序規則衝突

edwardking888發表於2011-04-27

今天一個同事問我

他在SQL查詢中遇到問題

equal to 操作   排序規則衝突

怎麼解決

原來2個表的排序規則是不一樣的

原來SQL如下:

select PromotionInfo.Name,COUNT(distinct(WinnerInfo.UserId))
from dbo.WinnerInfo, dbo.PromotionInfo
where  WinnerInfo.PromotionId=PromotionInfo.Id  and WinnerInfo.LastModified >'2011-4-21'
and WinnerInfo.LastModified < '2011-4-22'
group by PromotionInfo.Name

 

改為:

select PromotionInfo.Name,COUNT(distinct(WinnerInfo.UserId))
from dbo.WinnerInfo, dbo.PromotionInfo
where  WinnerInfo.PromotionId=PromotionInfo.Id collate Chinese_PRC_CI_AS
and WinnerInfo.LastModified >'2011-4-21'
and WinnerInfo.LastModified < '2011-4-22'
group by PromotionInfo.Name

就可以了。

 

排序規則簡介:

  什麼叫排序規則呢?MS是這樣描述的:"在 Microsoft SQL Server  中,字串的物理儲存由排序規則控制。排序規則指定表示每個字元的位模式以及儲存和比較字元所使用的規則。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8183550/viewspace-693870/,如需轉載,請註明出處,否則將追究法律責任。

相關文章