Sql Server 中汉字处理排序规则,全角半角

--1. 为数据库指定排序规则
CREATE DATABASE db COLLATE Chinese_PRC_CI_AS
GO

ALTER DATABASE db COLLATE Chinese_PRC_BIN
GO


/**//*====================================*/


--2. 为表中的列指定排序规则
CREATE TABLE tb(
col1 
varchar(10),
col2 
varchar(10) COLLATE Chinese_PRC_CI_AS)
GO

ALTER TABLE tb ADD col3 varchar(10) COLLATE Chinese_PRC_BIN
GO

ALTER TABLE tb ALTER COLUMN col2 varchar(10) COLLATE Chinese_PRC_BIN
GO


/**//*====================================*/


--3. 为字符变量和参数应用排序规则
DECLARE @a varchar(10),@b varchar(10)
SELECT @a='a',@b='A'

--使用排序规则 Chinese_PRC_CI_AS
SELECT CASE WHEN @a COLLATE Chinese_PRC_CI_AS = @b THEN '@a=@b' ELSE '@a<>@b' END
--结果:@a=@b

--使用排序规则 Chinese_PRC_BIN
SELECT CASE WHEN @a COLLATE Chinese_PRC_BIN = @b THEN '@a=@b' ELSE '@a<>@b' END
--结果:@a<>@b
--1. 按拼音排序
DECLARE @t TABLE(col varchar(2))
INSERT @t SELECT ''
UNION ALL SELECT ''
UNION ALL SELECT ''

SELECT * FROM @t ORDER BY col COLLATE Chinese_PRC_CS_AS_KS_WS
/**//*--结果
col  
---- 



--
*/

GO


/**//*==========================================*/


--2. 汉字首字母查询处理用户定义函数
CREATE FUNCTION f_GetPY(@str nvarchar(4000))
RETURNS nvarchar(4000)
AS
BEGIN
    
DECLARE @py TABLE(
        ch 
char(1),
        hz1 
nchar(1) COLLATE Chinese_PRC_CS_AS_KS_WS,
        hz2 
nchar(1) COLLATE Chinese_PRC_CS_AS_KS_WS)
    
INSERT @py SELECT 'A',N'',N''
    
UNION  ALL SELECT 'B',N'',N'簿'
    
UNION  ALL SELECT 'C',N'',N''
    
UNION  ALL SELECT 'D',N'',N''
    
UNION  ALL SELECT 'E',N'',N''
    
UNION  ALL SELECT 'F',N'',N''
    
UNION  ALL SELECT 'G',N'',N''
    
UNION  ALL SELECT 'H',N'',N''
    
UNION  ALL SELECT 'J',N'',N''
    
UNION  ALL SELECT 'K',N'',N''
    
UNION  ALL SELECT 'L',N'',N''
    
UNION  ALL SELECT 'M',N'',N''
    
UNION  ALL SELECT 'N',N'',N''
    
UNION  ALL SELECT 'O',N'',N''
    
UNION  ALL SELECT 'P',N'',N''
    
UNION  ALL SELECT 'Q',N'',N''
    
UNION  ALL SELECT 'R',N'',N''
    
UNION  ALL SELECT 'S',N'',N''
    
UNION  ALL SELECT 'T',N'',N''
    
UNION  ALL SELECT 'W',N'',N''
    
UNION  ALL SELECT 'X',N'',N''
    
UNION  ALL SELECT 'Y',N'',N''
    
UNION  ALL SELECT 'Z',N'',N''
    
DECLARE @i int
    
SET @i=PATINDEX('%[吖-做]%' COLLATE Chinese_PRC_CS_AS_KS_WS,@str)
    
WHILE @i>0
        
SELECT @str=REPLACE(@str,SUBSTRING(@str,@i,1),ch)
            ,
@i=PATINDEX('%[吖-做]%' COLLATE Chinese_PRC_CS_AS_KS_WS,@str)
        
FROM @py
        
WHERE SUBSTRING(@str,@i,1BETWEEN hz1 AND hz2
    
RETURN(@str)
END
GO

--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%'

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

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

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


/**//*=============================================*/


--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

转载于:https://www.cnblogs.com/nosnowwolf/archive/2008/04/02/1134550.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/276919.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决局域网设置固定IP后无法上网?

1.cmd中输入ipconfig /all查看ip和dns的状态 2.查看自动获取的dns是什么,然后手动设置ip和dns时,和自动获取的保持一样即可 注解&#xff1a;设置后还是无法上网后主要检查ip与dns是否设置错误. 转载于:https://www.cnblogs.com/yanans/p/11301061.html

鼠标输入

一、隐藏并捕捉光标 偏航角和俯仰角是通过鼠标移动获得的&#xff0c;水平的移动影响偏航角&#xff0c;竖直的移动影响俯仰角。 原理是&#xff0c;存储上一帧鼠标的位置&#xff0c;在当前帧中计算鼠标位置与上一帧的位置相差多少。如果水平/竖直差别越大&#xff0c;那么俯仰…

c#用canny算子做边缘提取_机器视觉学习(三)边缘检测

一、边缘检测二、边缘检测流程三、Canny边缘检测前言边缘检测是图像处理和计算机视觉中&#xff0c;尤其是特征提取中的一个研究领域。有许多方法用于边缘检测&#xff0c;它们的绝大部分可以划分为两类&#xff1a;基于一阶导数首先计算边缘强度&#xff0c; 通常用一阶导数表…

bindresult必须在哪个位置_手机视频剪辑工具哪个好?清爽视频编辑APP有人推荐吗?...

作为一个非常喜欢旅游的人&#xff0c;每次出门在外都喜欢发各种照片&#xff0c;以前发照片觉得就能够表达自己的状态和心情&#xff0c;但是随着时间的变化发现&#xff0c;身边的人都开始喜欢发视频了。此前在飞机上拍摄了一段觉得不错的天空视频&#xff0c;想要制作成短片…

无法访问你试图使用的功能所在的网络位置_[steam实用工具]解决无法访问商店/社区/好友列表的问题...

[steam实用工具]解决无法访问商店/社区/好友列表的问题在我们使用steam的过程中&#xff0c;由于某些原因&#xff0c;在访问商店/社区/好友列表时会被受到限制。针对这种情况&#xff0c;国内的大神些开发出了以下工具来解决我们访问的难题。本文章中的软件由“羽翼诚"大…

(转)用Java获得当前性能信息

(转&#xff09;用Java获得当前性能信息 http://www.blogjava.net/amigoxie/archive/2008/04/30/197564.html在Java中&#xff0c;可以获得总的物理内存、剩余的物理内存、已使用的物理内存等信息&#xff0c;本例讲解如何取得这些信息&#xff0c;并且获得在Windows下的内存使…

docker wsl2启动不了_Docker学习笔记

在笔记本上主要还是想以轻量、方便为主&#xff0c;所以采用的是在WSL2中使用docker的这么一个方案。WSL2我笔记本原来是预装的是WIN10家庭版&#xff0c;需要先升级为专业版&#xff0c;并加入windows预览体验计划。更新完之后&#xff0c;安装WSL&#xff0c;我选择的是Ubunt…

网易马进:DDB从分布式数据库到结构化数据中心的架构变迁

导语&#xff1a; 本文根据马进老师在2018年5月10日【第九届中国数据库技术大会(DTCC)】现场演讲内容整理而成。马进 网易 DDB项目负责人来自网易杭研大数据平台组&#xff0c;入职以来先后参与了分布式数据库DDB&#xff0c;缓存NKV&#xff0c;网易数据运河NDC等项目&#xf…

element label动态赋值_浅析 vuerouter 源码和动态路由权限分配

背景上月立过一个 flag&#xff0c;看完 vue-router 的源码&#xff0c;可到后面逐渐发现 vue-router 的源码并不是像很多总结的文章那么容易理解&#xff0c;阅读过你就会发现里面的很多地方都会有多层的函数调用关系&#xff0c;还有大量的 this 指向问题&#xff0c;而且会有…

世界领先的界面设计公司:The Skins Factory

该公司的网站&#xff1a; http://www.theskinsfactory.com/skinsfactory/ 该公司诞生于2000年&#xff0c;由一群狂热的界面爱好者&#xff0c;带着对GUI的热情和大胆的洞察力创立。很快&#xff0c;皮肤工厂便成长为世界领先的、真正的、革命性界面解决方案提供商。 更多的精…

HDU 1253 胜利大逃亡 题解

胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 44540 Accepted Submission(s): 15483 Problem DescriptionIgnatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会.魔王住在一个城堡…

lstm需要优化的参数_使用PyTorch手写代码从头构建LSTM,更深入的理解其工作原理...

这是一个造轮子的过程&#xff0c;但是从头构建LSTM能够使我们对体系结构进行更加了解&#xff0c;并将我们的研究带入下一个层次。LSTM单元是递归神经网络深度学习研究领域中最有趣的结构之一&#xff1a;它不仅使模型能够从长序列中学习&#xff0c;而且还为长、短期记忆创建…

有哪些漂亮的中国风 LOGO 设计?

提到中国风的logo&#xff0c;我觉得首先登场的应该是北京故宫博物院的logo&#xff0c;铛&#xff01;故宫博物院的logo&#xff0c;从颜色&#xff0c;到外形&#xff0c;到元素&#xff0c;无一例外&#xff0c;充满了中国风的味道&#xff0c;可谓是中国风中的典型。同一风…

python3常用模块_Python3 常用模块

一、time与datetime模块 在Python中&#xff0c;通常有这几种方式来表示时间&#xff1a; 时间戳(timestamp)&#xff1a;通常来说&#xff0c;时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”&#xff0c;返回的是float类型。 格式…

地方政府不愿房价下跌 救市或化解房地产调控

地方政府不愿房价下跌 "救市"或化解房地产调控 2008年05月09日 07:29:38  来源&#xff1a;上海证券报 漫画 刘道伟 由于房地产业与地方政府利益攸关&#xff0c;地方政府最不愿意看到房价下跌。中央房地产调控政策刚刚导致部分城市的房价步入调整&#xff0c;一些…

App移动端性能工具调研

使用GT的差异化场景平台描述release版本development版本Android在Android平台上&#xff0c;如果希望使用GT的高级功能&#xff0c;如“插桩”等&#xff0c;就必须将GT的SDK嵌入到被调测的应用的工程里&#xff0c;再配合安装好的GT使用。支持AndroidiOS在iOS平台上&#xff0…

UITabBar Contoller

。UITabBar中的UIViewController获得控制权&#xff1a;在TabBar文件中添加&#xff1a;IBOutlet UITabBar *myTabBar; //在xib中连接tabBar&#xff1b;(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:      (UIViewControlle…

python3.5安装pip_win10上python3.5.2第三方库安装(运用pip)

1 首先在python官网下载并安装python。我这儿用的是python3.5.2&#xff0c;其自带了pip。如果你选择的版本没有自带pip&#xff0c;那么请查找其他的安装教程。 2 python安装好以后&#xff0c;我在其自带的命令提示符窗口中输入了pip&#xff0c;结果尴尬了&#xff0c;提示我…

语法上的小trick

语法上的小trick 构造函数 虽然不写构造函数也是可以的&#xff0c;但是可能会开翻车&#xff0c;所以还是写上吧。&#xff1a; 提供三种写法&#xff1a; ​ 使用的时候只用&#xff1a; 注意&#xff0c;这里的A[i]gg(3,3,3)的“gg”不能打括号&#xff0c;否则就是强制转换…

Ubuntu18.04如何让桌面软件默认root权限运行?

什么是gksu? 什么是gksu:Linxu中的gksu是系统中的su/sudo工具,如果安装了gksu,在终端中键入gksu会弹出一个对话框. 安装gksu: 在Ubuntu之前的版本中是继承gksu工具的,但是在Ubutu18.04中并没有集成, 在Elementary OS中连gksu的APT源都没有. Ubuntu18.04 安装和使用gksu: seven…