【转载】SQL SERVER 通过对汉字、字母和数字的Unicode码区间的判断来识别字符串
A~Z :65~90
a~z :97~122
0~9 : 48~57
–汉字unicode编码范围:[0x4e00,0x9fa5](或十进制[19968,40869])
SELECT * FROM dbo.person WHERE UNICODE(zz) BETWEEN 19968 AND 40869
或
WHERE UNICODE(zz) BETWEEN 0x4e00 AND 0x9fa5
经常我们会用到判断某个字符或者字符串是否包含中文,英文,特殊符号等等。这时候可以通过判断Unicode所在区间来确定某个字符所处类型。当然可以通过直接判断Unicode码,但是鉴于习惯,以下提供的是Unicode码对应的数字区间。毕竟字符的本质也就是通过二进制进行存储编码的而已。
汉字:[0x4e00,0x9fa5](或十进制[19968,40869])
数字:[0x30,0x39](或十进制[48,
57])
小写字母:[0x61,0x7a](或十进制[97,
122])
大写字母:[0x41,0x5a](或十进制[65,
90])
其他:除上所有
1.SQL trim()函数去掉两头空格
ltrim()去除左空格rtrim()去除右空格。去除两头空格就是 select ltrim(rtrim(字段))
2.replace()函数替换字符
按照ASCII码
select char(64) 对应@ 那么 select replace(‘abc@163.com’,char(64),‘d’)
结果:
abcd163.com
去掉tab为 select replace(‘字段’,char(9),’’)
去掉空格为 select replace(‘字段’,char(32),’’)
去掉换行为 select replace(‘字段’,char(10),’’).
SqlServer 获取字符串中小写字母的sql语句
SQL字符串截取(SubString)
作用:返回第一个参数中从第二个参数指定的位置开始、第三个参数指定的长度的子字符串。
有时候我们会截取字符串中的一些特殊想要的东西,大小写字母、模号、汉字、数字等等,今天先介绍一个获取字符串中小写字母(也是大写字母)的方式,直接上写法:
DECLARE @s VARCHAR(MAX)= ‘AbcdEf奥奥’ --待截取字符串
DECLARE @temp VARCHAR(MAX)=’’ --临时变量
SELECT @temp=@temp+SUBSTRING(ch, sv.number, 1)
FROM (SELECT @s AS ch) t
CROSS APPLY [master].dbo.spt_values AS sv
WHERE sv.type = ‘P’
AND sv.number BETWEEN 1 AND LEN(ch)
AND ASCII(SUBSTRING(ch, sv.number, 1)) BETWEEN ASCII(‘a’) AND ASCII(‘z’)
SELECT @temp
这样我们就获取到了小写字母,当然我们还可以获取大写字母:
SELECT @temp=@temp+SUBSTRING(ch, sv.number, 1)
FROM (SELECT @s AS ch) t
CROSS APPLY [master].dbo.spt_values AS sv
WHERE sv.type = ‘P’
AND sv.number BETWEEN 1 AND LEN(ch)
AND ASCII(SUBSTRING(ch, sv.number, 1)) BETWEEN ASCII(‘A’) AND ASCII(‘Z’)
SELECT @temp
* 附另类判断汉字数字的SQL代码
-- 判断汉字1汉字,0非汉字
select PATINDEX('%[吖-做]%','123')
select PATINDEX('%[吖-做]%','abc')
select PATINDEX('%[吖-做]%','画') -- 判断数字的函数
select ISNUMERIC('1')
select ISNUMERIC('a1')
select ISNUMERIC('a')
在 SQL Server 中处理 Unicode 字串常数时,您必需在所有的 Unicode 字串前加上大写字母 N 做为前置词,N 前置词代表的是 SQL-92 标淮中的国家语言,且必须为大写。如果您没有在 Unicode 字串常数前面加上 N 做为前置词,则 SQL Server 会在使用字串前,先将其转换成目前资料库的非 Unicode 字码页。
declare @s varchar(50);
set @s = N'揶';
select UniCode(@s),nchar(UniCode(@s));
【转载】SQL SERVER 通过对汉字、字母和数字的Unicode码区间的判断来识别字符串的更多相关文章
- 转载--SQL Server 2005的XQuery介绍
原文地址: http://bbs.51cto.com/thread-458009-1-1.html 引用: 摘要 本文介绍了SQL Server 2005能够支持的XQuery的各方面特性如FLW ...
- 转载 SQL Server中索引管理之六大铁律
转载原地址 http://jingyan.baidu.com/article/48a42057c03bd7a924250429.html 索引是以表列为基础的数据库对象.索引中保存着表中排序的索引列, ...
- 转载——SQL Server数据库性能优化之SQL语句篇
转载自:http://www.blogjava.net/allen-zhe/archive/2010/07/23/326927.html 1. 按需索取字段,跟“SELECT *”说拜拜 字段的提取一 ...
- Sql Server 主键由字母数字组成并按照数字自动增长
在SQL SERVER 中如果我们想要使主键按照一定规则自动增长我们可以这样做: 这里我们新建一张研究表,里面有研究ID,研究人员姓名和研究医院. 我们使SicentificId 设为主键 并且从1开 ...
- 转载 :sql server分区 http://blog.itpub.net/27099995/viewspace-1081158/
转载:http://blog.itpub.net/27099995/viewspace-1081158/ 在 sql server 2005 之前不提供分区表,但可以用其他方式建立“分区表”,sql ...
- PCB MS SQL SERVER 字段含小写字母更新为大写字母
今天在预审完成时报如下错误,此错误原因是由于SQL Server数据字段存在小写,而Oracle数据库需大写导致的, 怎么解决这个问题了,非常简单 .这里将SQL贴出来 . 1.将生产型号中含有小写字 ...
- [转载]SQL Server 数据库定时自动备份
推荐使用SQLserver自带的SSMS工具创建维护计划来实现数据库定时自动备份 “维护计划”是在SSMS的对象资源管理中“管理”节点下面.使用维护计划可以通过可视化的操作,只点点鼠标就可以创建数据库 ...
- [转载]SQL Server 2008 R2安装时选择的是windows身份验证,未选择混合身份验证的解决办法
安装过程中,SQL Server 数据库引擎设置为 Windows 身份验证模式或 SQL Server 和 Windows 身份验证模式.本文介绍如何在安装后更改安全模式. 如果在安装过程中选择&q ...
- [转载]SQL Server如何保证可空字段中非空值唯一
原文地址:http://www.cnblogs.com/caspnet/archive/2011/02/23/1962638.html 解决问题是:在一个表里面,有一个允许为空的字段,空是可以重复的, ...
随机推荐
- PCA原理及其代码实现
首先简述一下PCA的作用: PCA是一种线性降维方法,它的目标i是通过某种线性投影,将高维的数据映射到低维空间中,并期望在所投影的维度上数据的信息量最大(方差最大),以此使用较少的数据维度,同时保留较 ...
- react 可视化编辑器1
可视化编辑器1 前言 前面我们学习低代码,例如百度的低代码平台 amis,也有相应的可视化编辑器,通过拖拽的方式生成配置文件.就像这样 笔者自己也有类似需求:比如中台有个归档需求,通过选择一些配置让后 ...
- C语言------结构体和共用体
仅供借鉴.仅供借鉴.仅供借鉴(整理了一下大一C语言每个章节的练习题.没得题目.只有程序了) 文章目录 1 .实训名称 2 .实训目的及要求 3.源代码及运行截图 4 .小结 1 .实训名称 实训8:结 ...
- numpy(ndarray)和tensor(GPU上的numpy)速查
类型(Types) Numpy PyTorch np.ndarray torch.Tensor np.float32 torch.float32; torch.float np.float64 tor ...
- Linux---配置新服务器的常见操作(CentOS7)
修改 Centos7为字符界面 Centos7取消了之前的 inittab文件的作用,改用命令实现, systemctl get-default : 获得默认启动方式 systemctl set-de ...
- @RequestBody 注解问题
/** * 不管你是get 请求 还是 post 请求 只要你的参数名称叫做abc * 这里的abc 必须和 postman里面的key 一样 * ...
- Mysql InnoDB Redo log
一丶什么是redo innodb是以也为单位来管理存储空间的,增删改查的本质都是在访问页面,在innodb真正访问页面之前,需要将其加载到内存中的buffer pool中之后才可以访问,但是在聊事务的 ...
- 2流高手速成记(之八):基于Sentinel实现微服务体系下的限流与熔断
我们接上回 上一篇中,我们进行了简要的微服务实现,也体会到了SpringCloudAlibaba的强大和神奇之处 我们仅改动了两个注释,其他全篇代码不变,原来的独立服务就被我们分为了provider和 ...
- 常用到的read命令
记录一下. 几个简单参数介绍 read -p :显示提示信息 read -s :静默模式(Silent mode),不会在屏幕上显示输入的字符.当输入密码和其它确认信息的时候,这是很有必要的. rea ...
- java学习之JSON
0X00前言 JSON可以说是javascript的一种数据类型,我们学习JSON是为了在客户端的数据给读取出来,官方的解释是:概述:JSON(JavaScript Object Notation, ...