sql 2008 排序
2016-02-24 11:16
295 查看
数据库创建是不去分大小写的,但是今天查询时发现区分大写,经查时字段排训不是没人的的
Chinese_PRC_CI_AS.
select * FROM baser_thr.[ETL_DB].[dbo].[ftpConf]
where Fact_No='Wistron_chenge'--0条
--Fact_No='Wistron_ChengDe'--3条
--Fact_No COLLATE Chinese_PRC_CI_AS ='Wistron_chengde'--3条
Fact_No字段排序规则:Chinese_PRC_CS_AS 区分大小写,区分重音
[ftpConf]表排序规则:Chinese_PRC_CI_AS
[ETL_DB].数据库排序规则: Chinese_PRC_CI_AS
baser_thr服务器排序规则:Chinese_PRC_CI_AS
数据库字段内容是'Wistron_ChengDe'所以只有查询条件是'Wistron_ChengDe'或者强制不区分大小写查询才能查到结果
SQL SERVER 2000/2005/2008中默认不区分大小写,可以通过collate
Chinese_PRC_CS_AS来要求区分大小写,可以通过collate
Chinese_PRC_CI_AS恢复默认的不区分大小写*/
可以通过设置排序规使其区分大小写,可以分别在创建数据库、修改数据库、创建表的字符型列(char\varchar\nchar
\nvarchar等)时指定排序规则来实现。
可以对数据库更改默认的排序规则,alter database 数据库 collate 排序规格
但是却没有办犯没有办法对已有表表进行排序规则的更改,可以对列进行排序规则的更改。
如:
create database test COLLATE Chinese_PRC_CS_AS
--这样创建的数据库中区分大小写
alter database test COLLATE Chinese_PRC_CS_AS --修改后的数据库中区分大小写
Create table test(tid int primary key,tname varchar(20) collate
chines_prc_cs_as) --这样创建的tname列在使用SELECT 语句时就可以区分大小写了。
对不同排序规则的字段进行匹配时,会发生
消息 468,级别 16,状态 9,第 1 行
无法解决 equal to 操作中 "Chinese_PRC_CI_AS" 和 "Chinese_PRC_CS_AS"
之间的排序规则冲突。
在查找的时候,进行规则的更改(不改表的结构属性),既可以实现匹配:
SELECT * FROM SJCCBZ, Order_Motor WHERE
SJCCBZ.OrderID COLLATE Chinese_PRC_CI_AS =Order_Motor.OrderID
COLLATE Chinese_PRC_CI_AS and SJCCBZ.OrderID='1'AND
Order_Motor.M_State='已报账'
参考文献:http://yulimeander.blog.sohu.com/138331525.html
http://hi.baidu.com/331360958/blog/item/9d231a8f4bd951fd513d923a.html
Chinese_PRC_CI_AS.
select * FROM baser_thr.[ETL_DB].[dbo].[ftpConf]
where Fact_No='Wistron_chenge'--0条
--Fact_No='Wistron_ChengDe'--3条
--Fact_No COLLATE Chinese_PRC_CI_AS ='Wistron_chengde'--3条
Fact_No字段排序规则:Chinese_PRC_CS_AS 区分大小写,区分重音
[ftpConf]表排序规则:Chinese_PRC_CI_AS
[ETL_DB].数据库排序规则: Chinese_PRC_CI_AS
baser_thr服务器排序规则:Chinese_PRC_CI_AS
数据库字段内容是'Wistron_ChengDe'所以只有查询条件是'Wistron_ChengDe'或者强制不区分大小写查询才能查到结果
SQL SERVER 2000/2005/2008中默认不区分大小写,可以通过collate
Chinese_PRC_CS_AS来要求区分大小写,可以通过collate
Chinese_PRC_CI_AS恢复默认的不区分大小写*/
可以通过设置排序规使其区分大小写,可以分别在创建数据库、修改数据库、创建表的字符型列(char\varchar\nchar
\nvarchar等)时指定排序规则来实现。
可以对数据库更改默认的排序规则,alter database 数据库 collate 排序规格
但是却没有办犯没有办法对已有表表进行排序规则的更改,可以对列进行排序规则的更改。
如:
create database test COLLATE Chinese_PRC_CS_AS
--这样创建的数据库中区分大小写
alter database test COLLATE Chinese_PRC_CS_AS --修改后的数据库中区分大小写
Create table test(tid int primary key,tname varchar(20) collate
chines_prc_cs_as) --这样创建的tname列在使用SELECT 语句时就可以区分大小写了。
对不同排序规则的字段进行匹配时,会发生
消息 468,级别 16,状态 9,第 1 行
无法解决 equal to 操作中 "Chinese_PRC_CI_AS" 和 "Chinese_PRC_CS_AS"
之间的排序规则冲突。
在查找的时候,进行规则的更改(不改表的结构属性),既可以实现匹配:
SELECT * FROM SJCCBZ, Order_Motor WHERE
SJCCBZ.OrderID COLLATE Chinese_PRC_CI_AS =Order_Motor.OrderID
COLLATE Chinese_PRC_CI_AS and SJCCBZ.OrderID='1'AND
Order_Motor.M_State='已报账'
参考文献:http://yulimeander.blog.sohu.com/138331525.html
http://hi.baidu.com/331360958/blog/item/9d231a8f4bd951fd513d923a.html
相关文章推荐
- sql导入导出 excel文件
- Nosql相关产品和分布式相关中间件
- Wamp配置mysql编码
- Jfinal连接数据库时处报NullPointException错误
- mysql 数据库导入\导出(总结备忘)
- SQL语句复制表的方法
- T-SQL 编程 存储过程
- 访问数据库时出现“Duplicate entry \'0\' for key \'PRIMARY\'错误“
- SQL 注释 书写
- .net sql连接字符串
- SQL 存储过程
- sql server sa 密码和授权
- 省市区数据库下载,包含34个省级,340个市级,2865个县级
- 数据库组合查询和模糊查询
- 安装N2000网管时提示连接数据库失败
- mongodb复制集配置
- xml数据文件上传至数据库
- linux下静默安装oracle的方法
- PostgreSQL Loadbalance Analysis CPU
- [solr] - 数据库导入