SQL Server之字符串函数

以下所有例子均Studnet表为例:

 

计算字符串长度
len()用来计算字符串的长度

select sname ,len(sname) from student

字符串转换为大、小写
lower() 用来将一个字符串转换为小写,upper() 用来将一个字符串转换为大写

select lower('I AM A STUDENT !')
select upper('i am a student !')

截去字符串左、右侧空格                                               
ltrim() 用来将一个字符串左侧的空格去掉 ,rtrim()用来将一个字符串右侧的空格去掉

declare @str varchar(100)
set@str='我的左侧有空格!'
select @str as初始字符, len(@str) as初始长度,ltrim(@str) as现有字符,len(ltrim(@str)) as现有长度

返回由重复的空格组成的字符串
space(integer_expression)    integer_expression 指示空格个数的正整数。如果 integer_expression 为负,则返回空字符串。

select 'A'+space(2)+'B'

取子字符串
substring(string,start_position,length) 可以从任意位置取任意长度的子字符串,
left(string,length)  从左侧开始取子字符串
right(string,length)从右侧开始取子字符串

select substring('HelloWorld!',6,6)
select left('HelloWorld!',5)
select right('HelloWorld!',6)

字符串替换
replace(string,要被替换的字符串,替换的字符串)

select replace('HelloWorld!','o','e') 结果为:HelleWerld!

返回字符串值的逆向值
reverse(string_expression)

select reverse('abc') 结果为:cba

删除指定长度的字符,并在指定的起点处插入另一组字符
stuff(character_expression , start , length ,character_expression)
start 一个整数值,指定删除和插入的开始位置。
length 一个整数,指定要删除的字符数。

select stuff('abcdefg',1,6,'Hello ') 结果为:Hello g

以指定的次数重复字符串值
replicate(string_expression ,integer_expression)

select replicate('abc',4) 结果为:abcabcabcabc

返回字符串中指定表达式的开始位置
charindex(expression1 ,expression2  , start_location )或charindex(expression1 ,expression2 )
expression1在expression2 中的开始位置

select charindex('H','elloHWorld') 结果为:5

返回指定表达式中模式第一次出现的开始位置
patindex('%pattern%',expression) 返回指定表达式中某模式第一次出现的起始位置;
如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零。

select patindex('%Hello%','WorldHello') 结果为:6

返回输入表达式的第一个字符的整数值
unicode( 'ncharacter_expression' )    ' ncharacter_expression ' 为 nchar 或 nvarchar 表达式。

select unicode('a') 结果为:97
select unicode('abc') 结果为:97

返回由数字数据转换来的字符数据
str(float_expression , length ,decimal )
float_expression 带小数点的近似数字 (float) 数据类型的表达式。
length               总长度。它包括小数点、符号、数字以及空格。默认值为 10。
decimal             小数点右边的小数位数。decimal 必须小于等于 16。如果 decimal 大于 16,则将结果截断为小数点右边的 16 位。

复制代码
复制代码
select str(123.436,2), len(str(123.436,2)) //当表达式超出指定长度时,字符串为指定长度返回 **

select str(123.436), len(str(123.436)),
str(123.436,6), len(str(123.436,6)),
str(123.436,6,1), len(str(123.436,6,1)) //由六个数字和一个小数点组成的表达式转换为有六个位置的字符串。
数字的小数部分舍入为一个小数位。
select str(1234.436), len(str(1234.436)),
str(1234.436,6), len(str(1234.436,6)),
str(1234.436,6,1),len(str(1234.436,6,1))
复制代码
复制代码

结果为:

          

          

得到字符的ASCII码
ascii()用来得到一个字符的ASCII码,它有且只有一个参数,如果参数为字符串,那么取第一个字符的ASCII码

select ascii('H')
select ascii('HelloWorld!')

得到一个与ASCII码数字对应的字符
Char(integer_expression)  integer_expression 介于 0 和 255 之间的整数。如果该整数表达式不在此范围内,将返回 NULL 值。

select Char(72)

返回返回具有指定的整数代码的 Unicode 字符
nchar(integer_expression)  integer_expression 介于 0 与 65535 之间的正整数。如果指定了超出此范围的值,将返回 NULL。

select nchar(1000)

返回带有分隔符的 Unicode 字符串,分隔符的加入可使输入的字符串成为有效的 SQL Server 分隔标识符。
quotename('character_string')  character_string 不得超过 128 个字符。超过 128 个字符的输入将返回 NULL。

select quotename('abc[aa]def')

结果为:[abc[]]def]  请注意,字符串 abc[]def 中的右方括号有两个,用于指示转义符。
select QUOTENAME('abcdef','''') --分隔符是两个单引号
-- 'abcdef'
select QUOTENAME('abcdef') --分隔符是]
-- [abcdef]
select QUOTENAME('abcdef','{}') --分隔符是}
-- {abcdef}

发音匹配度
有时候我们并不知道一个人姓名的拼写,但是我们知道他的发音,这时我们可以进行发音的匹配度测试。
soundex()用于计算一个字符串的发音特征性,这个特征值为一个四个字符的字符串,特征性的第一个字符总是初始字符串中的第一个字符,而后是一个三位数的数值。

select sname ,soundex(sname) from student

结果为:

发音特征值的含义非常复杂,如果要根据两个发音特征值来分析两个字符串的发音相似度的话非常麻烦。
可以使用difference()来简化两个字符串的发音相似度比较,它可以计算两个字符串的发音特征值,并且比较它们,
然后返回一个0~4之间的值来反映两个字符串的发音相似度,这个值越大则表示两个字符串的发音相似度越大。

select sname,soundex(sname), difference(sname,'Herry') from stu

结果为:

 

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,并在文章页面明显位置以超链接形式注明出处,否则保留追究法律责任的权利。

转载自:http://www.cnblogs.com/jiajiayuan/archive/2011/06/16/2082488.html

转载于:https://www.cnblogs.com/hyqs/articles/3225166.html

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

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

相关文章

Android通用流行框架大全

Android通用流行框架大全 1. 缓存 名称描述DiskLruCacheJava实现基于LRU的磁盘缓存2.图片加载 名称描述Android Universal Image Loader一个强大的加载,缓存,展示图片的库Picasso一个强大的图片下载与缓存的库Fresco一个用于管理图像和他们使用的内存的库…

Windows Shell 编程 第六章 【来源:http://blog.csdn.net/wangqiulin123456/article/details/7987951】...

第六章 快捷方式的最短路径 Windows Shell允许存储任何对象的引用到系统范围内的任何地点。例如,当你从一个文件夹拖拽可执行程序到另一个文件夹时,鼠标自动改变形状给出除拷贝和移动文件之外的第三种选择。 除非你确定,否则可执行文件是不能…

ShowMsg函数妙用

为什么80%的码农都做不了架构师?>>> 在对DedeCMS做2次开发的时候可能提示信息会经常用到,为了方便在此将ShowMsg方法提取出来,使用方法:ShowMsg(“提示信息”,“进行跳转的页面URL”&#xff0…

二进制文件比较

一 工具 使用Araxis Merge类似的工具来比较两个文件夹是否相同,比较两个二进制文件是否相同。1) 比较两个文件夹是否相同,只要有文件的名字不同就认为两个文件夹不相同2) 文件修改为新的名字后,二进制比较时仍与原文件…

土压力图怎么画_电气系统图怎么画?

电气系统图,又称为电气系统控制图,是通过使用国家规定的图形符号和文字代号代表各种电器、电机及元件,根据生产机械的要求和各种电器的原理,用线条代表导线连接起来,用于展示供电线路与各设备工作原理及其相互关系的一…

考勤助手——数据库3.0版本

基于数据库1.0及2.0版本,我们将细节的地方逐一进行讨论,设计出了数据库3.0版本。 根据ER图,进行基本表的设计如下: 转载于:https://www.cnblogs.com/GG-TEN/p/5471019.html

幽灵交易策略_幽灵交易者策略(附源代码)

NO1 . 前言正如幽灵交易者的名字,该策略的核心思路是,在真实下单交易之前,先虚拟出一个交易,如果这个虚拟的交易是亏损的,那么下一次才启动真实的交易。NO2 . 策略简介该策略思路源自于交易者的观察,交易者…

test blog

blogsdf sdfsd转载于:https://blog.51cto.com/11570194/1771304

并行编程——内存模型之缓存一致性

1 定义 缓存一致性 Cache coherence 简称 CC, 缓存一致性协议是在共享缓存多处理器架构确保最终一致性最突出、最重要的机制。这些协议在缓存线(cache-line)级别实现了对一致性的保证。缓存线是从主内存中读取数据和向内存中写入数据的缓存单…

Start Instance 操作详解 - 每天5分钟玩转 OpenStack(31)

本节通过日志文件详细分析 instance start 操作。下面是 start instance 的流程图向 nova-api 发送请求nova-api 发送消息nova-compute 执行操作下面我们详细讨论每一个步骤。 向 nova-api 发送请求客户(可以是 OpenStack 最终用户,也可以是其他程序&…

失望时想起了你是什么歌_你是空你是空是什么歌 你是风你是风什么歌

“你是空,你是空”“你是风,你是风”“下起雨想起了你”前奏的歌曲最近在抖音受到很多人的喜欢,想要找到完整版歌词作为BGM,这首歌非常的洗脑,你是空你是空是什么歌?你是风什么歌?下面八宝网带来…

ASP.NET MVC从视图传递多个模型到Controller

从后台组织好数据然后传递到页面倒是水到渠成很方便,因为MVC自身就将这样的需求内建到了这个系统中。我只需要在后台组织好一个List 或IEnumerable类型的变量,将需要传递的数据模型扔进去便可。 比如这里我们向视图返回5条product信息在页面进行展示&…

还原virtual函数的本质-----C++

当你每次看到C类中声明一个virtual函数,特别是看到了一个virtual的虚构函数。你知道它的意思吗?你肯定会毫不犹豫的回答:不就是多态么。。。在运行时确定具体的行为么。。。完全正确,但这里我要讲的不只是这些东西。 有些类需要虚…

0511 backlog 项目管理

SCRUM 这次的作业就是确定SCRUM的计划,确定sprint backlog的一个冲刺周期,而这个周期是两个星期。争取在两周内发布1.0版本。 本次作业以网站构建为主: ID NAMEIMPESTHOW TO DONOTES1首页99小时用户登录网站也可以看游客的推广的内容&am…

4月27日微软云训练营活动-现场图集

1.签到 2.到场同学,这一天是工作日,但是人气依然很火。 转载于:https://www.cnblogs.com/finehappy/p/3262296.html

Java中内存中的Heap、Stack与程序运行的关系

堆和栈的内存管理 栈的内存管理是顺序分配的,而且定长,不存在内存回收问题;而堆 则是随机分配内存,不定长度,存在内存分配和回收的问题;堆内存和栈内存的区别可以用如下的比喻来看出:使用堆内存…

mysql 5.6 linux安装配置_linux手动安装配置mysql5.6

1.准备工作①官网下载:https://dev.mysql.com/downloads/mysql/5.6.html#downloads下载之后上传到服务器。②创建linux组用户groupadd mysqluseradd -g mysql mysql2.安装①解压,比如放到了/usr/local/,进入到该目录下,进行用z解压gz包&#…

KVM安装Windows Server 2008 R2使用virtio硬盘

在上一篇文章中,我们介绍了使用IDE硬盘来安装Windows Server 2008 R2,这篇文章我们来介绍使用virtio硬盘来安装Windows Server 2008 R2。 说明:KVM默认使用的硬盘格式为virtio。 使用virtio接口的硬盘,我们必须加载virtio硬盘驱动。如果不加载…

Sublime Text 2 入门及技巧

看了 Nettuts 对 Sublime Text 2 的介绍,立刻就兴奋了,诚如作者 Jeffrey Way 所说:“《永远的毁灭公爵》都发布了,TextMate 2 还没发”,你还能指望它么?TextMate 开发者的消极态度已经无法让人忍受了。而作…

YII 配置文件

用YIIFramework的库开发 Java代码 .... Yii::createWebApplication($config); //没有run Yii::import(class1,true),在将class1类文件路径存储时,同时include该文件 注意:你也可以将配置文件分为多个文件&#xff0…