问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

sql语句怎么判断一个字符是全角还是半角

发布网友 发布时间:2022-04-30 08:04

我来回答

5个回答

懂视网 时间:2022-04-30 12:26

早晨在群里灌水。突然有人发了这个,问哪里错了,下图是sql语句和报错信息。。。

一群人猜了半天,呵呵,最后发现是 ”全角空格“ 引起的。。。真是醉了。。记录下,引以为戒。

 

 

技术分享

 

技术分享

sql语句,一个全角空格的考验

标签:

热心网友 时间:2022-04-30 09:34

select unicode( 's')
/*返回值为65281~65374 ,则是全角,33~126 为半角*/

/*下面为全角与半角的转换函数*/

if object_id(N'u_convert',N'FN') is not null
 drop   function u_convert
GO  
/*
 转换原理 
全角字符unicode编码从65281~65374  
半角字符unicode编码从33~126  
空格比较特殊,全角为 12288,半角为   32  
而且除空格外,全角/半角按unicode编码排序在顺序上是对应的  
所以可以直接通过用+-法来处理非空格数据,对空格单独处理  
like的时候,指定排序规则   COLLATE   Latin1_General_BIN  
是保证字符顺序按unicode编码排序  

*/  
create   function   u_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 
     begin 
       select   @pat=N'%[!-~]%',@step=-65248,  
       @str=replace(@str,N' ',N'   ')  
     end
    else  
     begin
       select   @pat=N'%[!-~]%',@step=65248,  
       @str=replace(@str,N'   ',N' ')  
     end
    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.u_convert('11',1) as [a],'11' as [b],dbo.u_convert('111',0) as [c]

热心网友 时间:2022-04-30 10:52

额,又是一个没说明数据环境的~~~~~~~~~~~~~~~~~~
sql server为例:用ASCII()函数可以判断全半角字符。select ASCII('你要判断的字符') 结果在0~255之间的都是半角字符,负数(如-23637)就是全角字符。

热心网友 时间:2022-04-30 12:26

给你个思路
char a = 'a';
char b = 'a';// 全角a
char aa = 'z';
char bb = 'z'; //全角z

System.out.println((int)a+":"+(int)aa);
System.out.println((int)b+":"+(int)bb);

结果,半角a~z的值是在97~122
全角 a~z的值在65345~65370之间

据此判断即可。

热心网友 时间:2022-04-30 14:18

select 1 from al where to_multi_byte('A')='A';
返回1,全角;返回空,半角。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
现在思科的CCNA,CCNE,CCIP的考证费分别是多少啊,通过率怎样 长春小飞没有车没有房 碳钢的多久生锈 碳钢多久会生锈 碳钢多长时间会开始生锈 碳钢和铝哪个容易生锈 梦见天宫图是什么意思 光遇2023好友树解锁图鉴 光遇二级节点多少个 ...火柴小女孩》《词语手册》里有很多词语的意思的,求告知 暖融融解释 我订阅了一个主播,怎么进它的房间?yy的在我的订阅那里点不进去,求解 怎样进入直播房间 迷你世界主播给你发送密码怎么进去它的里面玩? 迷你世界没有主播好友,怎么进她开的房间(房间没有密码)? 在快手上热门付款了视频被删了钱能退回吗? 快手充的热门怎么退 你好,成长守护平台可以把钱要回来吗?我家孩子玩游戏和快手充值三万 快手给一个女孩子刷了几千块钱能退回来吗 为什么我支付宝绿色通行码是黑色的? 绿色同行码怎么弄?如果绿色同行码是绿色是不是就可以出去打工了? 公务员考试题型 梦见一树红枣搞他吃了还送别人吃的这是什么意思 2016年公务员考试试卷 梦见送别人枣子代表什么? 江苏省公务员考试中案例分析题怎么复习,里面涉及很多法律条文 案例分析:根据公务员制度的规定,对于案例中的公务员录用程序进行分析。 历年*机关遴选公*的案例分析一科,题目内容一般考的是什么方面和内容的啊? 2020公务员申论备考:综合分析题作答有哪些注意事项? 公务员考试案例分析里意义主要写哪些 公务员考试案例分析 name card 如何制作?是用A4纸做。急啊!!! 英文名卡怎么做 和兄弟姐妹在一起玩的相册名 好听的兄妹相册名称 姐妹温馨的相册名字 兄妹间开的相册用什么名称好 兄妹一起拍的音乐相册取什么名字好 结拜兄妹的相册名字 兄妹题材的个性相册备注 适合逗逼兄妹的相册名称 姐弟俩一起慢慢成长的相册名字 姐弟相册的非主流,繁体字,符号的网名 求帮忙想个名字啊!兄妹的名字! 与女朋友交往快三个月了,想送她一份具有纪念意义的礼物,不知道送什么好,请给位兄弟姐妹们多多指教! 干货都有哪些 干货的意思 干货的分类 特斯拉卡车sami有无人驾驶功能吗? 驭势科技落地全球首款无人驾驶巡逻车,展现全场景技术实力 丙子虏乱的战争过程