`

sqlserver排序规则在全角与半角处理中的应用

阅读更多

 

--1.查询区分全角与半角字符
--测试数据
DECLARE @t TABLE(col varchar(10))
INSERT @t SELECT 'aa'
UNION ALL SELECT 'Aa'
UNION ALL SELECT 'AA'   --全角A
UNION ALL SELECT 'A,A'  --全角A,半角逗号(,)
UNION ALL SELECT 'A,A' --全角A,全角逗号(,)

--1.查大写字母
SELECT * FROM @t
WHERE col COLLATE Chinese_PRC_CS_AS_WS like '%A%'

--结果
Aa

--2.查全角字母
SELECT * FROM @t
WHERE col COLLATE Chinese_PRC_CS_AS_WS like '%A%'

--结果
AA
A,A
A,A

--3.查半角逗号(,)
SELECT * FROM @t
WHERE col COLLATE Chinese_PRC_CS_AS_WS like '%,%'

--结果
A,A

--3.查全角逗号(,)
SELECT * FROM @t
WHERE col COLLATE Chinese_PRC_CS_AS_WS like '%,%'
GO

--结果
A,A

 


--2 实现全角与半角字符转换的处理函数
CREATE FUNCTION f_Convert(
@str NVARCHAR(4000), --要转换的字符串
@flag bit              --转换标志,0转换成半角,1转换成全角
)RETURNS nvarchar(4000)
AS
BEGIN
 DECLARE @pat nvarchar(8),@step int,@i int,@spc int
 IF @flag=0
  SELECT @pat=N'%[!-~]%',@step=-65248,
   @str=REPLACE(@str,N' ',N' ')
 ELSE
  SELECT @pat=N'%[!-~]%',@step=65248,
   @str=REPLACE(@str,N' ',N' ')
 SET @i=PATINDEX(@pat COLLATE LATIN1_GENERAL_BIN,@str)
 WHILE @i>0
  SELECT @str=REPLACE(@str,
    SUBSTRING(@str,@i,1),
    NCHAR(UNICODE(SUBSTRING(@str,@i,1))+@step))
   ,@i=PATINDEX(@pat COLLATE LATIN1_GENERAL_BIN,@str)
 RETURN(@str)
END
GO

SELECT [dbo].[f_Convert] ('AAA' ,0)

--结果
AAA

 

作者:http://www.cnblogs.com/aierong/

分享到:
评论

相关推荐

    sqlserver排序规则在全角与半角处理中的应用 sql源码

    sqlserver排序规则在全角与半角处理中的应用 sql源码 简单明了好资料

    排序函数(sqlserver)

    本篇将详细探讨SQL Server中的排序功能及其在拼音处理和全角半角字符处理中的应用。 首先,我们要了解SQL Server中的基本排序语句——`ORDER BY`。在SQL查询中,`ORDER BY`子句用于指定返回结果集的排序方式。例如...

    SQL表中列的全角问题

    在处理数据库时,我们经常会遇到各种字符编码和字符集的问题,其中“全角”字符就是一个常见的挑战。本文将详细介绍如何解决SQL Server 2005中表列中的主键遇到全角字符时的问题,并提供具体的解决方案。 #### 全角...

    SQL Server中获取多音字拼音首字母.pdf

    本文设计的函数依照 Chinese_PRC_CI_AS_WS 排序规则(大陆地区简体字,不区分大小写,区分重音,不区分全角半角),音节的排序顺序为依次升序排列。拼音字母在汉语拼音表中的序号作为它们相互比较大小的依据,如果两...

    SQL SERVER 2000开发与管理应用实例

    本书全面系统地介绍了SQL Server开发和管理的应用技术,涉及安装和配置SQL Server、日期处理、字符处理、排序规则、编号处理、数据统计与汇总、分页处理、树形数据处理、数据导入与导出、作业、数据备份与还原、用户...

    SQLserver排序规则基本概念探索

    本文将深入探讨SQL Server排序规则的基本概念。 首先,让我们了解字符编码的基础。在计算机早期,ASCII编码是最基础的字符编码方式,它可以表示英文中的字母、数字和一些特殊字符。然而,随着全球化的发展,单一的...

    SQL2008对表名及字段区分大小写

    在SQL Server中,每个数据库都有一个默认的排序规则,它决定了字符串数据的排序方式以及如何处理大小写、重音符号等。 2. **CI/CS**:CI表示Case Insensitive(不区分大小写),而CS表示Case Sensitive(区分大小...

    sqlserver2000基础(高手也有用)

    3.5 字符串分拆与合并处理应用实例 74 3.5.1 字符串比较 74 3.5.2 字符串交集/并集 75 3.5.3 分拆字符串并统计 78 3.5.4 借用字符串实现无规律排序 82 3.5.5 列车车次查询 82 3.6 字符串在动态Transact...

    Sqlserver2000经典脚本

    非法字符串处理.sql │ ├─第04章 │ │ 4.1.5 在各种处理中应用排序规则的示例.sql │ │ 4.2.1 排序规则在拼音处理中的应用.sql │ │ 4.2.2 排序规则在全角与半角处理中的应用.sql │...

    经典SQL脚本大全

    │ │ 4.2.2 排序规则在全角与半角处理中的应用.sql │ │ │ └─其他 │ 生成GB2312汉字表.sql │ 生成GBK汉字表.sql │ 自动获取汉字笔画.sql │ ├─第05章 │ │ 5.1.1 SET IDENTITY_INSERT 中的几个问题.sql...

    DB2 SQL 精萃.pdf

    在处理包含半角和全角字符的字符串时,可以使用 DB2 提供的相关函数进行转换。例如: ```sql SELECT TRANSLATE('ABC', 'A', 'a') FROM DUAL; ``` 这里,`TRANSLATE` 函数用于将全角字符转换为半角字符。 #### 3....

    ASP.NET编程之道.part1.rar

    谬误10 .NET和SQL Server中“空值”是一回事 谬误11 C#的结构和C++的完全一样 谬误12 方法中只有引用类型的参数才能实现引用传递 谬误13 字符串是值类型 谬误14 数据绑定表达式中Eval功能等价于Bind 谬误15 .Net中的...

Global site tag (gtag.js) - Google Analytics