首页 > 开发 > 综合 > 正文

在SQLServer中区分大小写的几种方法

2024-07-21 02:12:04
字体:
来源:转载
供稿:网友
第一种:(蟋蟀)
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

第二种:(tree)
--创建如下用户自定义函数(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

第三种:(oliver)
sql server 数据库中的文本信息可以用大写字母、小写字母或二者的组合进行存储。例如,姓氏可以"smith"、"smith"或"smith"等形式出现。

数据库是否区分大小写取决于 sql server 的安装方式。如果数据库区分大小写,当搜索文本数据时,必须用正确的大小写字母组合构造搜索条件。例如,如果搜索名字"smith",则不能使用搜索条件"=smith"或"=smith"。

另外,如果服务器被安装成区分大小写,则必须用正确的大小写字母组合提供数据库、所有者、表和列的名称。如果提供的名称大小写不匹配,则 sql server 返回错误,报告"无效的对象名"。

当使用关系图窗格和网格窗格创建查询时,查询设计器始终正确地反映出服务器是否区分大小写。但是,如果在 sql 窗格中输入查询,则必须注意使名称与服务器解释名称的方式相匹配。

如果服务器是用不区分大小写的选项安装的,则
提示   若要确定服务器是否区分大小写,请执行存储过程 sp_server_info,然后检查第 18 行的内容。如果服务器是用不区分大小写的设置安装的,则 sort_order 选项将设置为"不区分大小写"。可以从查询分析器运行存储过程。

第四种:(非云)
select * from servers where convert(varbinary, name)=convert(varbinary, n'rockey')

第五种:()

ascii('a')再配合substring()一起用

  • 网站运营seo文章大全
  • 提供全面的站长运营经验及seo技术!
  • 发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表