加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server中区分大小写

发布时间:2016-09-11 12:54:32 所属栏目:MsSql教程 来源:站长网
导读:从数据库Collate到存储过程到函数,各种方法都有,选择适合你的。 第一种: ALTER TABLE tb ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CI_AS --
从数据库Collate到存储过程到函数,各种方法都有,选择适合你的。

第一种:

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 数据库 COLLATE Chinese_PRC_CS_AS

第二种:--创建如下用户自定义函数(UDF)

CREATE FUNCTION StrComp(@Str1 VARCHAR(50),@Str2 VARCHAR(50))
--ALTER FUNCTION StrComp(@Str1 VARCHAR(50),@Str2 VARCHAR(50))
RETURNS INTEGER
AS
BEGIN
DECLARE @i INTEGER
--DECLARE @Str1 VARCHAR(50)
--DECLARE @Str2 VARCHAR(50)
DECLARE @y INT
--SET @Str1='a'
--SET @Str2='A'
SET @i=0
--SELECT ASCII(SUBSTRING(@Str1,@i+1,1))
SET @y=1
DECLARE @iLen INT
SET @iLen = LEN(LTRIM(RTRIM(@Str1)))
IF LEN(LTRIM(RTRIM(@Str1))) < LEN(LTRIM(RTRIM(@Str2))) --THEN
SET @iLen = LEN(LTRIM(RTRIM(@Str2)))
WHILE (@i < @iLen)
BEGIN
IF (ASCII(SUBSTRING(@Str1,@i+1,1))=ASCII(SUBSTRING(@Str2,@i+1,1))) --THEN
SET @i = @i +1
ELSE
BEGIN
SET @y=0
BREAK
END
END
RETURN @y
END

测试:

select *
from Table1
Where dbo.StrComp(Field1,'aAbB') =1

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读