关于排序几个问题的探讨
declare @tb t1(col varchar(20))
create table t2(col varchar(20))
create table #t3(col varchar(20))
请问上面三个表里的列是什么排序?
如果我不知道当前数据库的排序规则是什么时,但我建表变量时,想指定列为当前数据库的排序,该怎么写?类似下面语句...
declare @tb table(col varchar(10) collate database default)
[解决办法]
帮顶一下
[解决办法]
上面三个表列的排序是你的表所在数据库的排序
查看当前你的表所在数据库的排序规则:
SELECT CONVERT(char, DATABASEPROPERTYEX( '数据库名 ', 'collation '))
--结果:Chinese_PRC_CI_AS
查出排序规则后,指定排序规则
declare @tb table(col varchar(10) COLLATE Chinese_PRC_CI_AS)
[解决办法]
sp_help '表名 ' 有一列 collation 值 为Chinese_PRC_CI_AS(假设),
如果两个表的排序规则不同,则会造成排序冲突解决方案:
select a.*,b.* from t1 a left t2 b on a.关键字=b.关键字 collate Chinese_PRC_CI_AS
即可解决
[解决办法]
mark
[解决办法]
ding