SQL 如何区分大小写?

SQL 表中某列char(4),如何区分大小写?例:C622 和c622都是这一列里面的,我现在想选出c622,但SQL不懂如何区分大小写!

昨天去客户,发现程序无法应用,跟踪错误提示,提示的大致意思是“数据库表名和数据库字段名不存在”。查询后发现是SQL Server数据库设置了区分大小写的缘故(一般安装时,Oracle的正确安装下是默认转换为大写;SQL Server数据库是不转换为大写,但是使用时并不区分大小写):
下面语句是设置SQL Server数据库是否区分大小写:(表名和数据库字段名)
--修改数据库不区分大小写
alter database 数据库名称 COLLATE Chinese_PRC_CI_AS
如:alter database zjk_cx COLLATE Chinese_PRC_CI_AS
--修改数据库区分大小写
alter database 数据库名称 COLLATE Chinese_PRC_CS_AS
如:alter database zjk_cx COLLATE Chinese_PRC_CS_AS
下面是数据库各行记录内容是否区分大小写:(一般在查询时的where条件中使用)
--不区分大小写
alter database 数据库名称 alter column 字段名称 字段类型 COLLATE Chinese_PRC_CI_AS
如:alter database zjk_cx alter column DBConn varchar(500) COLLATE Chinese_PRC_CI_AS
--区分大小写
alter database 数据库名称 alter column 字段名称 字段类型 COLLATE Chinese_PRC_CS_AS
如:alter database zjk_cx alter column DBConn varchar(500) COLLATE Chinese_PRC_CS_AS
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-11-14
-- mysql
SELECT * FROM TAB WHERE COL = BINARY 'c622'
-- sql server
SELECT * FROM TAB WHERE CAST(COL AS VARBINARY) = CAST('c622' AS VARBINARY)

本回答被提问者采纳
相似回答