Sql Server函数全解<一>字符串函数

Sql Server字符串函数

字符串函数用于对字符和二进制字符进行各种操作

1.ASCII()函数

 ASCII(character_expression)函数用于返回字符串表达式中最左侧的ASCII代码值。参数character_expression必须是一个char或varchar类型的字符串表达式。
 eg: select ASCII(‘s‘),ASCII(‘sql‘),ASCII(‘1‘);
执行结果如图:
字符‘s‘的ASCII值为115,所以第一行和第二行返回结果相同,对于第三条语句中的纯数字的字符串,可以不用单引号括起来。

2.CHAR()函数

 CHAR(integer_expression)函数将整数类型的ASCII值转换为对应的字符,integer_expression是一个介于0~255之间的整数。如果该整数表达式不在此范围内,将返回null值。
eg: select CHAR(115),CHAR(49);
可以看到,这里返回的值与ASCII函数的返回值正好相反.

3.LEFT()函数

  LEFT(character_expression,integer_expression)函数返回字符串左边开始指定个数的字符串、字符或者二进制数据表达式。character_expression是字符串表达式,可以是常量,变量或字段。integer_expression为整数,指定character_expression将返回的字符数。 
eg: select LEFT(‘football‘,4);
 函数返回字符串“football”左边开始的长度为4的子字符串,结果为“foot”,可见索引从1开始。

4.RIGHT()函数

 与LEFT()函数相反,RIGHT(character_expression,integer_expression)返回字符串character_expression最右边integer_expression个字符。
eg: select RIGHT(‘football‘,4);
 函数返回字符窜"football"右边开始的长度为4的字符串,结果为“ball”,索引也是从1开始的。

5.LTRIM()函数

  LTRIM(character_expression)用于除去字符串左边多余的空格,字符数据表达式character_expression是一个字符串表达式,可以是常量,变量,也可以是字符字段或者二进制数据列。
eg: select ‘(‘ + ‘ book ‘ + ‘)‘, ‘(‘ +LTRIM( ‘ book ‘) + ‘)‘;
 对比两个值,LTRIM只删除字符串左边的空格,右边的空格不会被删除.

6.RTRIM()函数

  RTRIM(character_expression)用于除去字符串右边多余的空格,字符数据表达式character_expression是一个字符串表达式,可以是常量,变量,也可以是字符字段或者二进制数据列。
eg:  select ‘(‘ +‘ book ‘ +‘)‘,‘(‘ +RTRIM(‘ book ‘) +‘)‘;
 对比两个值,LTRIM只删除字符串右边的空格,左边的空格不会被删除.

7.STR()函数

 STR(float_expression [ , length [ , decimal ] ])函数用于将数值数据转换为字符数据。float_expression是一个带有小数点的近似数字(float)数据类型的表达式。length表示总长度。它包括小数点、符号、数字以及空格,默认值为10。decimal指定小数点后的位数,decimal必须小于或等于16。如果decimal大于16,则会截断结果,使其保持小数点后有16为。
eg: select STR(3141.59,6,1),STR(123.45,2,2)
 第一条语句6个数字和一个小数点组成的数值3141.59转换为长度为6的字符串,数字的小数部分舍入为1个小数位,第二条语句中的表达式超出指定的总长度时,返回的字符串为指定长度的两个**。

8.字符串逆序的函数REVERSE()

 REVERSE(s)将字符串s反转,返回的字符串的顺序和s的顺序相反。
 eg: select REVERSE(‘abc‘);
 由结果可以看到,字符串“abc”经过REVERSE函数处理后,所有的字符串顺序被反转,结果为“cba”;

9.计算字符串的长度函数LEN(str)

 返回字符表达式中的字符数。如果字符串中包含前导空格和尾随空格,则函数将它们包含在内。LEN对相同的单字节和双字节字符串返回相同的值。
eg: select LEN(‘no‘),LEN(‘日期‘),LEN(12345);
 可以看到,LEN函数在对待英文字符和汉字字符时,返回的字符串长度是相同的,一个汉字也算作一个字符。LEN函数在处理纯数字也将其当作字符串,但是纯数字可以不实用引号.

10.匹配字符串开始位置的函数CHARINDEX(str1,str,[start])

 CHARINDEX(str1,str,[start])函数返回子字符串str1在字符串str中的开始位置,start为搜索的开始位置,如果指定start参数,则从指定位置开始搜索;如果不指定start参数或者指定为0或者负值,则从字符串开始位置搜索。
 eg: select CHARINDEX(‘a‘,‘banana‘),CHARINDEX(‘a‘,‘banana‘,4), CHARINDEX(‘na‘,‘banana‘, 4);

 CHARINDEX(‘a‘,‘banana‘)返回字符串‘banana‘中子字符串‘a’ 第一次出现的位置,结果为2;
 CHARINDEX(‘a‘,‘banana‘,4)返回字符串‘banana‘中从第4个位置开始子字符串‘a’的位置,结果为4;
 CHARINDEX(‘na‘,‘banana‘, 4)返回从第4个位置开始子字符串‘na’第一次出现的位置,结果为5

11.SUBSTRING()函数

 SUBSTRING(value_expression,start_expression,length_expression)函数返回字符表达式,二进制表达式,文本表达式或图像表达式的一部分。
 value_expression是character、binary、text、ntext或image表达式。
 start_expression指定返回字符的起始位置的整数或表达式。如果start_expression小于0,或生成错误并终止语句。如果 start_expression大于值表达式的字符数,将返回一个零长度的表达式。
 length_expression是正整数或指定要返回的value_expression的字符数表达式。如果length_expression是负数,会生成错误并终止语句,如果start_expression与length_expression的总和大于value_expression中的字符数,则返回整个值表达式。
eg: select SUBSTRING (‘breakfast‘1,5), SUBSTRING(‘breakfast‘ , LEN(‘breakfast‘)/2, LEN(‘breakfast‘));
 第一条语句返回从第一个位置开始长度为5的字符串,结果为"break",第二条语句返回整个字符串的后半段字符串,结果为"akfast"

12.LOWER()

 LOWER(character_expression)将大写字符数据转换为小写字符数据后返回字符表达式。character_expression是指定要进行转换的字符串。
eg: select LOWER(‘BEAUTIFUL‘),LOWER(‘Well‘);
由结果可以看到,经过LOWER()函数转换之后,大写字母都变成小写了,小写字母保持不变.

13.UPPER()函数

 UPPER(character_expression)将小写字符数据转换为大写字符数据后返回字符表达式。character_expression指定要进行转换的字符串。
eg: select UPPER(‘black‘),UPPER(‘Black‘);
 由结果可以看到,经过UPPER函数转换后,小写字母都变成了大写,大写字母保持不变。

14.替换函数REPLACE(s,s1,s2)

 REPLACE(s,s1,s2)使用字符串s2替代字符串s中的s1.
 eg: select REPLACE(‘xxx.sqlserver2012.com‘,‘x‘,‘w‘);
 EPLACE(‘xxx.sqlserver2012.com‘,‘x‘,‘w‘)将"xxx.sqlserver2012.com"字符串中的‘x‘替换为‘w‘字符,结果为"www.sqlserver2012.com";

时间: 2024-10-12 07:08:17

Sql Server函数全解<一>字符串函数的相关文章

Sql Server函数全解&lt;二&gt;数学函数

  数学函数主要用来处理数值数据,主要的数学函数有:绝对值函数,三角函数(包括正弦函数,余弦函数,正切函数,余切函数).对数函数,随机函数等.在错误产生时,数学函数将返回空值null.本次介绍各种数学函数的功能和用法. 1.绝对值函数ABS(x)和返回圆周率的函数PI()  ABS(x)返回x的绝对值,PI()返回圆周率的值  eg: select ABS(2),ABS(-3.3),ABS(-33),PI(); 正数的绝对值是其本身,2的绝对值为2:负数的绝对值为其相反数,-3.3的绝对值为3.

Sql Server函数全解&lt;四&gt;日期和时间函数

原文:Sql Server函数全解<四>日期和时间函数   日期和时间函数主要用来处理日期和时间值,本篇主要介绍各种日期和时间函数的功能和用法,一般的日期函数除了使用date类型的参数外,也可以使用datetime类型的参数,但会忽略这些值的时间部分.相同的,以time类型值为参数的函数,可以接受datetime类型的参数,但会忽略日期部分. 1.获取系统当前日期的函数getDate();  getDate()函数用于返回当前数据库系统的日期和时间,返回值的类型为datetime.[例]sel

Sql Server函数全解&lt;五&gt;之系统函数

原文:Sql Server函数全解<五>之系统函数  系统信息包括当前使用的数据库名称,主机名,系统错误消息以及用户名称等内容.使用SQL SERVER中的系统函数可以在需要的时候获取这些信息.下面介绍系统函数的作用和使用方法. 1.返回表中指定字段的长度   COL_LENGTH(table,column)函数返回表中指定字段的长度值.其返回值为int类型,table为要确定其列长度信息的表的名称,是nvarchar类型的表达式.column为要确定其长度的列的名称,是nvarchar类型的

SQL Server数据库partition by 与ROW_NUMBER()函数使用详解[转]

关于SQL的partition by 字段的一些用法心得 先看例子: if object_id('TESTDB') is not null drop table TESTDB create table TESTDB(A varchar(8), B varchar(8)) insert into TESTDB select 'A1', 'B1' union all select 'A1', 'B2' union all select 'A1', 'B3' union all select 'A2'

SQL Server提供更为灵活的转换函数FORMAT。

CONVERT函数的style是数字,记忆起来比较困难,只能按照系统定义的格式来显示,不够灵活.SQL Server提供更为灵活的转换函数FORMAT. 2,FORMAT函数,控制日期和时间类型的显示格式 FORMAT函数主要用于格式化显示date/time类型和数值类型,参数format用于指定显示的格式,给予用户对格式更自由地控制,culture参数是可选的,用于指定显示的语言,该函数返回值的数据类型是NVARCHAR,如果格式转换失败,该函数返回NULL: FORMAT ( value,

SQL Server数据全同步及价值分析[终结版]

SQL Server数据全同步[终结版] 版权全部.转载请注明出处.谢谢! 经过两天的同步编写和測试.出了第一个Release版本号: 1. 本函数仅支持单向同步.即从一个主数据库想多个从数据库同步 2.主数据库的不论什么增删改都会同步到全部从数据库上 3. 最重要的一点:同步数据库的价值所在:当主数据库server不可用时,程序能够使用其它从数据库或者备用数据库,这对于未来公有云和私有云应用具有重大价值! 代码: <span style="font-size:18px;">

SQL Server中利用正则表达式替换字符串

原文:SQL Server中利用正则表达式替换字符串 建立正则替换函数,利用了OLE对象,以下是函数代码: --如果存在则删除原有函数 IF OBJECT_ID(N'dbo.RegexReplace') IS NOT NULL DROP FUNCTION dbo.RegexReplace GO --开始创建正则替换函数 CREATE FUNCTION dbo.RegexReplace ( @string VARCHAR(MAX), --被替换的字符串 @pattern VARCHAR(255),

[SQL SERVER][Memo]全时区转换

假设你的应用程序是跨国(如跨国银行事务)使用的话, 那么数据库一些国际化特性支持可说相当重要, 其中最常见的就是各国时区上的差异. 由于SQL Server getdate() 是撷取执行个体电脑所返回的值, 所以并不包含数据库时区位移, 但SQL2008后新增了 datetimeoffset? 数据类型(结合时区为基础的当日时间), 且可搭配 SWITCHOFFSET Function 来更方便处理时区转换需求, 下面自己笔记一下(个人认为在AP端处理应该可以更方便 TimeZoneInfo

如何编写sql server 触发器详解

在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序.触发器是一个特殊的存储过程.常见的触发器有三种:分别应用于Insert , Update , Delete 事件. 编写之前要了解一个关键知识.触发器用到的两个临表:Deleted , Inserted . Deleted 和 Inserted 分别存储触发事件表的"旧的一条记录"和"新的一条记录". 一个Update 的过程可以看作为:生成新的记录到Inserted表,复制旧