有時會需要在2個db之間的資料做比較, 但因為一些原因, 資料庫的預設排序規則是不一樣的, 例如
select a.col1, b.col1, a.* from db1.dbo.a left join db2.dbo.b on a.code = b.code
where 1 = 1
order by a.col2
則會報如下錯誤:
無法解決 equal to 運算中 "chinese_prc_ci_as" 和 "sql_latin1_general_cp1_ci_as" 之間的排序規則衝突。
注: 紅色字型可能會有所不同
這時, 需要我們用指定的排序規則來解決, 新增下面黃底的語句(注: 紅色字型需要按實際報錯排序規則的來排序)
select a.col1, b.col1, a.* from db1.dbo.a left join db2.dbo.b on a.code = b.code collate sql_latin1_general_cp1_ci_as
where 1 = 1
order by a.col2
in的寫法
select col1, col2
from table1 where code collate sql_latin1_general_cp1_ci_as
in (
select stditemcode from #temp1
)
sql server 排序規則
sql server 排序規則 檢視伺服器的排序規則 select serverproperty n collation select serverproperty collation chinese prc ci as 修改資料庫的排序規則 alter database tempdb collat...
SQL server 排序規則
排序規則名稱由兩部份構成,前半部份是指本排序規則所支援的字符集。如 chinese prc cs ai ws 前半部份 指unicode字符集,chinese prc 指針對大陸簡體字unicode的排序規則。排序規則的後半部份即字尾 含義 bin 二進位制排序 ci cs 是否區分大小寫,ci不區...
SQLServer排序規則知識總結
2.3.修改資料庫排序規則 2.4.修改表排序規則 檢視伺服器排序規則 安裝時指定的排序規則 select serverproperty collation as servercollation,databasepropertyex tempdb collation as tempdbcollati...