请问如果能使group by区别大小写
系列 型号
aITO aITO10252
aito aito10253
aito aito11245
想得到有几个不同的系列数,区分大小写应该是2,如何写SQL语句?
------解决方案--------------------指定排序规则
------解决方案--------------------转为二进制类型(varbinary)就可以区分大小写了。
------解决方案--------------------比如说一个表中两条记录的address字段值分别为:aaaa 和 aAAa,如果用
select * from mytable where address = 'aaaa '
则两条记录都查出来了,我希望只得到一条记录,这样的SQL应该怎么写?
create table #a(
[id] [char] (10),
[address] [char] (10)
)
insert into #a(id , address) values( '1 ' , 'aaaa ')
insert into #a(id , address) values( '1 ' , 'aAAa ')
select * from #a where address = 'aaaa ' COLLATE Chinese_PRC_CS_AS
select * from #a where address = 'aAAa ' COLLATE Chinese_PRC_CS_AS
drop table #a
id address
---------- ----------
1 aaaa
(所影响的行数为 1 行)
id address
---------- ----------
1 aAAa
(所影响的行数为 1 行)
如何查只以大写AB开头的呢?
通常情况下写select * from 表名 where 列名 like 'AB% '
但是这样,以小写ab开头的纪录也会被查找出来 如何查只以大写AB开头的呢?
select * from table where left(col,2) = 'AB% ' COLLATE Chinese_PRC_CS_AS
select * from table where col like 'AB% ' COLLATE Chinese_PRC_CS_AS
表
ALTER TABLE tb
ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CI_AS
--不区分大小写
ALTER TABLE tb
ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CS_AS
--区分大小写
数据库
ALTER DATABASE database
COLLATE Chinese_PRC_CS_AS
--区分大小写
ALTER DATABASE database
COLLATE Chinese_PRC_CI_AS
--不区分大小写
方法一.安装SQL时选择区分大小写
或安装完以后重建mastar,选择区分大小
C:\Program Files\Microsoft SQL Server\80\Tools\Binn\rebuildm.exe
方法二.sql server 8.0以上的版本才可以,7.0及其以下不支持
alter database 数据库 COLLATE Chinese_PRC_CS_AS
修改排序规则,改成大小写敏感的排序规则
如果只修改一个表,用alter table语句
如果修改一个库的默认排序规则,用alter datebase语句
如果修改整个服务器的默认排序规则,用Rebuildm.exe重建master库
--指定排序规则就可以了
--示例
select replace( 'AbacB ' collate Chinese_PRC_CS_AS_WS, 'B ', 'test ')
--如果你是要求表支持,则可以建表时指定排序规则,这样replace就不用写排序规则了
--示例
create table tb(a varchar(20) collate Chinese_PRC_CS_AS_WS)
insert tb values( 'Abac ')
select replace(a, 'a ', 'test ') from tb
drop table tb
指定排序规则即可
Windows 排序规则名称
在 COLLATE 子句中指定 Windows 排序规则名称。Windows 排序规则名称由排序规则指示器和比较风格构成。
语法
< Windows_collation_name > :: =
CollationDesignator_ <ComparisonStyle>
< ComparisonStyle > ::=
CaseSensitivity_AccentSensitivity
[_KanatypeSensitive [_WidthSensitive ] ]
| _BIN
参数
CollationDesignator
指定 Windows 排序规则使用的基本排序规则。基本排序规则包括:
当指定按字典排序时应用其排序规则的字母表或语言
用于存储非 Unicode 字符数据的代码页。
例如 Latin1_General 或法文,两者都使用代码页 1252,或土耳其文,它使用代码页 1254。
CaseSensitivity
CI 指定不区分大小写,CS 指定区分大小写。
AccentSensitivity
AI 指定不区分重音,AS 指定区分重音。
KanatypeSensitive
Omitted 指定不区分大小写,KS 指定区分假名类型。
WidthSensitivity
Omitted 指定不区分大小写,WS 指定区分大小写。
BIN
指定使用二进制排序次序。
如果你只是目前查询区分,那么还是不要这样改,免得又反悔,如此查询:
select * fro