SQL——字符串处理函数

1) ASCII

Format:ASCII ( character_expression )

Function:返回表达式最左端字符的ASCII值。

eg:

select ASCII(‘abcdef‘)
go

Result:

2) CHAR:

Format:CHAR ( integer_expression ),integer_expression是介于0~266之间的整数

Function:将ASCII码转换为字符。

eg:

select CHAR(97)
go

Result:

3) LEFT

Format:LEFT ( character_expression , integer_expression )

Function:返回从字符串左边开始指定个数的字符。返回值类型为varchar

eg1:

返回Cname最左边的 1 个字符。

use XSCJ
select LEFT(Cname,1)
 from KC
 order by Cname
go

Result:

eg2:

select LEFT(‘abcdef‘,3)
go

Result:

4) LTRIM

Format:LTRIM ( character_expression )

Function:删除character_expression字符串中的前导空格——字符串前面的空格,并返回字符串, character_expression为字符型表达式,返回值类型为varchar。

eg1:

使用 LTRIM 字符删除字符变量中的起始空格。

select LTRIM(‘     代码改变世界‘)
go

Result:

eg2:

DECLARE @string varchar(40)

SET @string = ‘     中国,一个古老而伟大的国家‘

SELECT  LTRIM(@string)

GO

6) REPLACE

Format:REPLACE ( ‘string_expression1‘ , ‘string_expression2‘ ,  ‘string_expression3‘ )

Function:用第3个字符串表达式替换第一个字符串表达式中包含的第二个字符串表达式, string_expression1 , string_expression2‘, string_expression3均为字符串表达式,返回值为字符型。

eg1:

DECLARE @var1 varchar(20),@var2 varchar(20),@var3 varchar(20)
 SET  @var1=‘紫小星是一个大帅哥。‘ /*一个SET语句只能给一个变量赋值*/
 SET  @var2=‘大帅哥‘
 SET @var3=‘萌妹纸‘
 SELECT replace(@var1,@var2,@var3)
GO

eg2:

select REPLACE(‘紫小星是一个大帅哥。‘,‘大帅哥‘,‘萌妹纸‘)
go

Result:

7) SUBSTRING

Format:SUBSTRING ( expression , start , length )

Function: 返回expression中指定的部分数据。参数expression可为字符串、二进制串、 text,image字段或表达式; start , length 均为整型,前者指定子串的开始位置,后者指定子串的长度(要返回的字节数)。如果expression是字符类型和二进制类型,则返回值类型与expression的类型相同。


给定的表达式


返回值类型


text


varchar


image


varbinary


ntext


nvarchar

eg1:

如下程序在一列中返回XS表中的姓氏,在另一列中返回表中学生的名。

SELECT SUBSTRING(Sname, 1,1), SUBSTRING(Sname, 2, LEN(Sname)-1)
FROM XS
ORDER BY Sname

Result:

eg2:

select SUBSTRING(‘1139685206‘,7,3) as ‘I love you‘
go

Result:

7) STR

Format:STR ( float_expression , length , decimal)

Function:将数字数据转换为字符数据。 Length表示转化后字符串数据的总长度,如果数据的长度小于字符串的长度,则在转换后的数据字符串的前面加空格填充。decimal表示转化后所需要显示的字符串数据中小数的位数。

Attention: STR 函数只视句点 (.) 为有效的小数点。如果使用不同的小数点(例如,国际性的应用程序),可使用 CSTR将数字转成字符串。

eg1:

declare  @a float,@b char(10)

set @a=200.86

set @b=(select STR(@a,6,2))

select  @b as 输出

go

Result:

eg2:

eg3:

eg4:

时间: 2024-10-18 21:05:11

SQL——字符串处理函数的相关文章

SQL字符串处理函数大全

select语句中只能使用sql函数对字段进行操作(链接sql server),select 字段1 from 表1 where 字段1.IndexOf("云")=1;这条语句不对的原因是indexof()函数不是sql函数,改成sql对应的函数就可以了.left()是sql函数.select 字段1 from 表1 where charindex('云',字段1)=1; 字符串函数对二进制数据.字符串和表达式执行不同的运算.此类函数作用于CHAR.VARCHAR. BINARY. 和

Sql字符串操作函数

1.去空格函数 (1).LTRIM() 把字符串头部的空格去掉. (2).RTRIM() 把字符串尾部的空格去掉. 2.字符转换函数(1).ASCII()返回字符表达式最左端字符的ASCII 码值.在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错.(2).CHAR()将ASCII 码转换为字符.如果没有输入0 ~ 255 之间的ASCII 码值,CHAR() 返回NULL .(3).LOWER()和UPPER()LOWER()将字符串全

使用SQL字符串反转函数REVERSE巧妙实现lastindexof功能

要实现一个简单的业务: 使用SQL脚本获取字符串'large/020700/61970b0101.jpg' 中的'61970b0101.jpg'部分. 先想到的是C#中的lastindexof,但是SQL中没有这个函数,只有charindex函数,只好使用现有资源想办法曲线解决了. 解决思路: 1.使用REVERSE函数将字符串反转 2.使用charindex找到第一个出现'/'的位置 3.使用left函数找到'/'之前的字符串 4.再次使用REVERSE函数将处理过的字符串反转 具体示例: D

SQL字符串转换函数

Ascii()函数 返回字符串表达式最左端字符的ASCII码值 语法格式:ascii(字符表达式) 例:ASCII('A'),ASCII('a'),ASCII(0),ASCII(9) 返回 65 97  48  57 Char()函数 将ASCII码转换为字符 语法格式:char(数值表达式) 若输入的不是0-255之间的ASCII码值,则返回一个null值 Lower() upper() 函数 把字符串全部转换为小写/大写 语法格式:lower(字符表达式)   upper (字符表达式) S

转载:SQL 字符串操作函数

http://www.cnblogs.com/jiajiayuan/archive/2011/06/16/2082488.html 以下所有例子均Studnet表为例:  计算字符串长度len()用来计算字符串的长度 select sname ,len(sname) from student 字符串转换为大.小写lower() 用来将一个字符串转换为小写,upper() 用来将一个字符串转换为大写 select lower('I AM A STUDENT !')select upper('i a

SQL字符串处理函数

--字符串长度计算 LEN()--字符串转小写LOWER()--字符串转大写UPPER()--去除字符串左边空格LTRIM()--去除字符串右边空格RTRIM()--返回由重复的空格组成的字符串 SPACE(num)产生的空格的个数 SELECT 'A'+SPACE(2)+'B' -- A B--截取字符串SUBSTRING()--从左侧开始截取字符串LEFT()--从右侧开始截取字符串RIGHT()--字符串替换REPLACE()--字符串反转REVERSE()--删除指定长度的字符串并且用指

ORACLE PL/SQL 字符串函数、数学函数、日期函数

ORACLE PL/SQL 字符串函数.数学函数.日期函数 --[字符串函数] --字符串截取substr(字段名,起始点,个数) select Name,substr(Name,2,4),substr(Name,0,3),substr(Name,-2,3),substr(Name,-2,1) from t1; --字符串从前面取三个(0开始) select Name,substr(Name,0,3) from t1; --字符串从后面取三个 select Name,substr(Name,-3

【SQL】sql版Split函数。用于拆分字符串为单列表格

原文:[SQL]sql版Split函数.用于拆分字符串为单列表格 功能与.net版string.Split函数类似,只不过.net返回的是数组,这个返回的是一个单列表格,每个拆分出来的子串占一行.可选是否移除空格子串和重复项.市面上类似的函数不算少,但大多都是在循环中对原串进行改动,我感觉这样不好,虽然不知道sql的字符串是不是像.net的一样具有不可变性,但感觉尽量不要去动原串最好,万一sql的字串也不可变,那变一次就要产生一份,尤其是每圈循环都在变,内存消耗让人心疼,所以才有重新造个轮子的想

第二天,导出文件sql,查询,视图view,聚合函数,反模式,字符串处理函数

//把数据库导出到脚本文件mysqldump -uroot -p1234 --databases abc > d:/a/abc.sql CREATE TABLE stud( id INT PRIMARY KEY, NAME VARCHAR(32) NOT NULL, score NUMERIC(4,1));//把所有名字都设成"Mike"了UPDATE stud SET NAME="Mike" //只设置分数>=70的记录的NameUPDATE stud