mssql中常用的字符串函数大集合

合集下载

sql拆分字符串的函数

sql拆分字符串的函数

sql拆分字符串的函数
在 SQL 中拆分字符串的函数取决于所使用的数据库管理系统
的不同。

以下是一些常见的数据库管理系统分解字符串的函数:
1. MySQL:
- `SUBSTRING_INDEX(str, delim, count)`: 以 delim 为分隔符
拆分 str 字符串,并返回 count 个分隔符之前或之后的子字符串。

- `REGEXP_SUBSTR(str, pattern)`: 使用正则表达式 pattern 拆分 str 字符串,并返回匹配的子字符串。

2. SQL Server:
- `STRING_SPLIT(str, delim)`: 以 delim 为分隔符拆分 str 字
符串,并返回结果集。

- 自定义函数:您也可以编写自己的函数来拆分字符串,这
需要使用字符串函数(如SUBSTRING和CHARINDEX)以
及循环或递归进行遍历。

3. Oracle:
- `REGEXP_SUBSTR(str, pattern, start, occurrence, modifier)`:
使用正则表达式 pattern 从 str 字符串中提取出第 occurrence 个
匹配的子字符串。

- 自定义函数:您也可以编写自己的函数来拆分字符串,这
需要使用字符串函数(如SUBSTR和INSTR)以及循环或递
归进行遍历。

请注意,上述函数仅提供了一种处理字符串拆分的方法。

在使
用这些函数时,请根据您具体的数据库管理系统和对字符串拆分的要求进行调整和修改。

mssql字符串中提取字母的函数

mssql字符串中提取字母的函数

mssql字符串中提取字母的函数在SQL Server中提取字符串中的字母,可以使用多种方法。

下面将介绍几种常见的方法。

1.使用ASCII函数和PATINDEX函数```sqlDECLARE @inputString VARCHAR(100) = 'abcd1234defg56';DECLARE @outputString VARCHAR(100) = '';DECLARE @len INT = LEN(@inputString);DECLARE @index INT = 1;WHILE @index <= @lenBEGINDECLARE @char CHAR(1) = SUBSTRING(@inputString, @index, 1);IF ASCII(@char) BETWEEN 65 AND 90 OR ASCII(@char) BETWEEN 97 AND 122BEGINSET @outputString += @char;ENDSET @index += 1;ENDSELECT @outputString;```上述代码中,首先定义了一个输入字符串变量`@inputString`,并初始化为空字符串`''`。

然后定义了一个输出字符串变量`@outputString`,用于存储提取的字母。

接下来,使用`LEN`函数获取输入字符串的长度,使用`@index`变量循环访问输入字符串的每个字符。

在每个循环中,使用`SUBSTRING`函数提取当前字符,并使用`ASCII`函数获取其ASCII码值。

通过判断ASCII码值是否在字母的范围内(65-90为大写字母,97-122为小写字母),将该字符添加到输出字符串中。

最后,输出结果。

2.使用PATINDEX函数和LIKE语句```sqlDECLARE @inputString VARCHAR(100) = 'abcd1234defg56';DECLARE @outputString VARCHAR(100) = '';WHILE LEN(@inputString) > 0BEGINDECLARE @char CHAR(1) = LEFT(@inputString, 1);IF @char LIKE '[a-zA-Z]'BEGINSET @outputString += @char;ENDSET @inputString = RIGHT(@inputString, LEN(@inputString) - 1);ENDSELECT @outputString;```上述代码中,首先定义了一个输入字符串变量`@inputString`,并初始化为待提取字母的字符串。

MySQL函数大全

MySQL函数大全

ASCII(str)返回字符串str的第一个字符的ASCII值(str是空串时返回0)mysql> select ASCII('2');-> 50mysql> select ASCII(2);-> 50mysql> select ASCII('dete');-> 100ORD(str)如果字符串str句首是单字节返回与ASCII()函数返回的相同值。

如果是一个多字节字符,以格式返回((first byte ASCII code)*256+(second byte ASCII code))[*256+third byte ASCII code...]mysql> select ORD('2');-> 50CONV(N,from_base,to_base)对数字N进制转换,并转换为字串返回(任何参数为NULL时返回NULL,进制范围为2-36进制,当to_base是负数时N作为有符号数否则作无符号数,CONV以64位点精度工作) mysql> select CONV("a",16,2);-> '1010'mysql> select CONV("6E",18,8);-> '172'mysql> select CONV(-17,10,-18);-> '-H'mysql> select CONV(10+"10"+'10'+0xa,10,10);-> '40'BIN(N)把N转为二进制值并以字串返回(N是BIGINT数字,等价于CONV(N,10,2))mysql> select BIN(12);-> '1100'OCT(N)把N转为八进制值并以字串返回(N是BIGINT数字,等价于CONV(N,10,8))mysql> select OCT(12);-> '14'HEX(N)把N转为十六进制并以字串返回(N是BIGINT数字,等价于CONV(N,10,16))mysql> select HEX(255);-> 'FF'返回由参数N,...对应的ASCII代码字符组成的一个字串(参数是N,...是数字序列,NULL值被跳过)mysql> select CHAR(77,121,83,81,'76');-> 'MySQL'mysql> select CHAR(77,77.3,'77.3');-> 'MMM'CONCA T(str1,str2,...)把参数连成一个长字符串并返回(任何参数是NULL时返回NULL)mysql> select CONCAT('My', 'S', 'QL');-> 'MySQL'mysql> select CONCAT('My', NULL, 'QL');-> NULLmysql> select CONCAT(14.3);-> '14.3'LENGTH(str)OCTET_LENGTH(str)CHAR_LENGTH(str)CHARACTER_LENGTH(str)返回字符串str的长度(对于多字节字符CHAR_LENGTH仅计算一次)mysql> select LENGTH('text');-> 4mysql> select OCTET_LENGTH('text');-> 4LOCATE(substr,str)POSITION(substr IN str)返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)mysql> select LOCATE('bar', 'foobarbar');-> 4mysql> select LOCATE('xbar', 'foobar');-> 0LOCATE(substr,str,pos)返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)mysql> select LOCATE('bar', 'foobarbar',5);-> 7INSTR(str,substr)返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)mysql> select INSTR('foobarbar', 'bar');-> 4mysql> select INSTR('xbar', 'foobar');-> 0LPAD(str,len,padstr)用字符串padstr填补str左端直到字串长度为len并返回mysql> select LPAD('hi',4,'??');-> '??hi'RPAD(str,len,padstr)用字符串padstr填补str右端直到字串长度为len并返回mysql> select RPAD('hi',5,'?');-> 'hi???'LEFT(str,len)返回字符串str的左端len个字符mysql> select LEFT('foobarbar', 5);-> 'fooba'RIGHT(str,len)返回字符串str的右端len个字符mysql> select RIGHT('foobarbar', 4);-> 'rbar'SUBSTRING(str,pos,len)SUBSTRING(str FROM pos FOR len)MID(str,pos,len)返回字符串str的位置pos起len个字符(使用FROM的丑陋语法是ANSI SQL92标准) mysql> select SUBSTRING('Quadratically',5,6);-> 'ratica'SUBSTRING(str,pos)SUBSTRING(str FROM pos)返回字符串str的位置pos起的一个子串mysql> select SUBSTRING('Quadratically',5);-> 'ratically'mysql> select SUBSTRING('foobarbar' FROM 4);-> 'barbar'SUBSTRING_INDEX(str,delim,count)返回从字符串str的第count个出现的分隔符delim之后的子串(count为正数时返回左端,否则返回右端子串)mysql> select SUBSTRING_INDEX('', '.', 2);-> 'www.mysql'mysql> select SUBSTRING_INDEX('', '.', -2);-> ''LTRIM(str)返回删除了左空格的字符串strmysql> select LTRIM(' barbar');-> 'barbar'RTRIM(str)返回删除了右空格的字符串strmysql> select RTRIM('barbar ');-> 'barbar'TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)返回前缀或后缀remstr被删除了的字符串str(位置参数默认BOTH,remstr默认值为空格) mysql> select TRIM(' bar ');-> 'bar'mysql> select TRIM(LEADING 'x' FROM 'xxxbarxxx');-> 'barxxx'mysql> select TRIM(BOTH 'x' FROM 'xxxbarxxx');-> 'bar'mysql> select TRIM(TRAILING 'xyz' FROM 'barxxyz');-> 'barx'SOUNDEX(str)返回str的一个同音字符串(听起来“大致相同”字符串有相同的同音字符串,非数字字母字符被忽略,在A-Z外的字母被当作元音)mysql> select SOUNDEX('Hello');-> 'H400'mysql> select SOUNDEX('Quadratically');-> 'Q36324'SPACE(N)返回由N个空格字符组成的一个字符串mysql> select SPACE(6);-> ' 'REPLACE(str,from_str,to_str)用字符串to_str替换字符串str中的子串from_str并返回mysql> select REPLACE('', 'w', 'Ww');-> ''REPEAT(str,count)返回由count个字符串str连成的一个字符串(任何参数为NULL时返回NULL,count<=0时返回一个空字符串)mysql> select REPEA T('MySQL', 3);-> 'MySQLMySQLMySQL'REVERSE(str)颠倒字符串str的字符顺序并返回mysql> select REVERSE('abc');-> 'cba'INSERT(str,pos,len,newstr)把字符串str由位置pos起len个字符长的子串替换为字符串newstr并返回mysql> select INSERT('Quadratic', 3, 4, 'What');-> 'QuWhattic'ELT(N,str1,str2,str3,...)返回第N个字符串(N小于1或大于参数个数返回NULL)mysql> select ELT(1, 'ej', 'Heja', 'hej', 'foo');-> 'ej'mysql> select ELT(4, 'ej', 'Heja', 'hej', 'foo');-> 'foo'FIELD(str,str1,str2,str3,...)返回str等于其后的第N个字符串的序号(如果str没找到返回0)mysql> select FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');-> 2mysql> select FIELD('fo', 'Hej', 'ej', 'Heja', 'hej', 'foo');-> 0FIND_IN_SET(str,strlist)返回str在字符串集strlist中的序号(任何参数是NULL则返回NULL,如果str没找到返回0,参数1包含","时工作异常)mysql> SELECT FIND_IN_SET('b','a,b,c,d');-> 2MAKE_SET(bits,str1,str2,...)把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应位置的字串选入字串集并返回(NULL串不添加到结果中)mysql> SELECT MAKE_SET(1,'a','b','c');-> 'a'mysql> SELECT MAKE_SET(1 | 4,'hello','nice','world');-> 'hello,world'mysql> SELECT MAKE_SET(0,'a','b','c');-> ''EXPORT_SET(bits,on,off,[separator,[number_of_bits]])按bits排列字符串集,只有当位等于1时插入字串on,否则插入off(separator默认值",",number_of_bits参数使用时长度不足补0而过长截断)mysql> select EXPORT_SET(5,'Y','N',',',4)-> Y,N,Y,NLCASE(str)LOWER(str)返回小写的字符串strmysql> select LCASE('QUADRATICALL Y');-> 'quadratically'UCASE(str)UPPER(str)返回大写的字符串strmysql> select UCASE('quadratically');-> 'QUADRATICALL Y'LOAD_FILE(file_name)读入文件并且作为一个字符串返回文件内容(文件无法找到,路径不完整,没有权限,长度大于max_allowed_packet会返回NULL)mysql> UPDATE table_name SET blob_column=LOAD_FILE("/tmp/picture") WHERE id=1;[color=red]数学函数[/color]ABS(N)返回N的绝对值mysql> select ABS(2);-> 2mysql> select ABS(-32);-> 32SIGN(N)返回参数的符号(为-1、0或1)mysql> select SIGN(-32);-> -1mysql> select SIGN(0);-> 0mysql> select SIGN(234);-> 1MOD(N,M)取模运算,返回N被M除的余数(同%操作符)mysql> select MOD(234, 10);-> 4mysql> select 234 % 10;-> 4mysql> select MOD(29,9);-> 2FLOOR(N)返回不大于N的最大整数值mysql> select FLOOR(1.23);-> 1mysql> select FLOOR(-1.23);-> -2CEILING(N)返回不小于N的最小整数值mysql> select CEILING(1.23);-> 2mysql> select CEILING(-1.23);-> -1ROUND(N,D)返回N的四舍五入值,保留D位小数(D的默认值为0) mysql> select ROUND(-1.23);-> -1mysql> select ROUND(-1.58);-> -2mysql> select ROUND(1.58);-> 2mysql> select ROUND(1.298, 1);-> 1.3mysql> select ROUND(1.298, 0);-> 1EXP(N)返回值e的N次方(自然对数的底)mysql> select EXP(2);-> 7.389056mysql> select EXP(-2);-> 0.135335LOG(N)返回N的自然对数mysql> select LOG(2);-> 0.693147mysql> select LOG(-2);LOG10(N)返回N以10为底的对数mysql> select LOG10(2);-> 0.301030mysql> select LOG10(100);-> 2.000000mysql> select LOG10(-100);-> NULLPOW(X,Y)POWER(X,Y)返回值X的Y次幂mysql> select POW(2,2);-> 4.000000mysql> select POW(2,-2);-> 0.250000SQRT(N)返回非负数N的平方根mysql> select SQRT(4);-> 2.000000mysql> select SQRT(20);-> 4.472136PI()返回圆周率mysql> select PI();-> 3.141593COS(N)返回N的余弦值mysql> select COS(PI());-> -1.000000SIN(N)返回N的正弦值mysql> select SIN(PI());-> 0.000000TAN(N)返回N的正切值mysql> select TAN(PI()+1);ACOS(N)返回N反余弦(N是余弦值,在-1到1的范围,否则返回NULL) mysql> select ACOS(1);-> 0.000000mysql> select ACOS(1.0001);-> NULLmysql> select ACOS(0);-> 1.570796ASIN(N)返回N反正弦值mysql> select ASIN(0.2);-> 0.201358mysql> select ASIN('foo');-> 0.000000ATAN(N)返回N的反正切值mysql> select ATAN(2);-> 1.107149mysql> select ATAN(-2);-> -1.107149ATAN2(X,Y)返回2个变量X和Y的反正切(类似Y/X的反正切,符号决定象限) mysql> select ATAN(-2,2);-> -0.785398mysql> select ATAN(PI(),0);-> 1.570796COT(N)返回X的余切mysql> select COT(12);-> -1.57267341mysql> select COT(0);-> NULLRAND()RAND(N)返回在范围0到1.0内的随机浮点值(可以使用数字N作为初始值) mysql> select RAND();-> 0.5925mysql> select RAND(20);mysql> select RAND(20);-> 0.1811mysql> select RAND();-> 0.2079mysql> select RAND();-> 0.7888DEGREES(N)把N从弧度变换为角度并返回mysql> select DEGREES(PI());-> 180.000000RADIANS(N)把N从角度变换为弧度并返回mysql> select RADIANS(90);-> 1.570796TRUNCATE(N,D)保留数字N的D位小数并返回mysql> select TRUNCA TE(1.223,1);-> 1.2mysql> select TRUNCA TE(1.999,1);-> 1.9mysql> select TRUNCA TE(1.999,0);-> 1LEAST(X,Y,...)返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)mysql> select LEAST(2,0);-> 0mysql> select LEAST(34.0,3.0,5.0,767.0);-> 3.0mysql> select LEAST("B","A","C");-> "A"GREATEST(X,Y,...)返回最大值(其余同LEAST())mysql> select GREATEST(2,0);-> 2mysql> select GREATEST(34.0,3.0,5.0,767.0);-> 767.0-> "C"[color=red]时期时间函数[/color]DAYOFWEEK(date)返回日期date是星期几(1=星期天,2=星期一,……7=星期六,ODBC标准) mysql> select DAYOFWEEK('1998-02-03');-> 3WEEKDAY(date)返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。

sql常用函数及用法

sql常用函数及用法

sql常用函数及用法SQL是一种使用结构化查询语言来管理关系数据库系统的编程语言。

在SQL中,有许多常用函数可用于在查询中计算结果值。

常用函数通常包括聚合函数、字符串函数、日期和时间函数、数学函数、条件函数等。

以下是SQL常用函数及其用法的参考内容。

1. 聚合函数聚合函数在SQL中用于计算和汇总数据。

最常用的聚合函数是SUM、AVG、MAX和MIN。

例如:SELECT SUM(salary) FROM employee;这将返回员工表中所有员工的总工资。

2. 字符串函数字符函数用于处理文本数据。

最常用的字符函数是LEN、UPPER、LOWER、SUBSTRING和CONCAT。

例如:SELECT UPPER(last_name) FROM employee;这将返回所有员工的姓氏的大写形式。

3. 日期和时间函数日期和时间函数用于处理日期和时间数据。

最常用的日期和时间函数是NOW、YEAR、MONTH、DAY和HOUR。

例如:SELECT YEAR(hire_date) FROM employee;这将返回每个员工被雇用的年份。

4. 数学函数数学函数用于计算数值数据。

最常用的数学函数是ABS、ROUND、CEILING和FLOOR。

例如:SELECT ABS(salary) FROM employee;这将返回员工工资的绝对值。

5. 条件函数条件函数根据给定的条件返回不同的结果。

最常用的条件函数是IF、CASE和COALESCE。

例如:SELECT IF(salary>50000, "High", "Low") FROM employee;这将返回“高”或“低”,具体取决于每个员工的工资是否大于50000。

总的来说,SQL中的常用函数可以大大简化数据处理和查询操作。

在实际使用时,根据需要选择适当的函数和参数可以大大提高工作效率。

mssql系统函数字符串函数space功能简介

mssql系统函数字符串函数space功能简介
/*采用space生成空格*/ create table A(keyId int,info1 varchar(30)) insert into A values(10,'') insert into A values(21,'') insert into A values(31,'/twt') select CONVERT(varchar(10),keyId)+':'+SPACE(5)+info1 from A truncate table A drop table A
1如果参数1输入为非varchar或nvarchar类型那么sql引擎先进行类型转换如果转换失败则返回错误信息
mssql系统函数字符串函数 space功能简介
一、space 函数功能简介 space功能:返回指定数量的空格 参数简介: 参数1: 指定数量,参数需为int类型 注意事项: 1 如果参数1输入为非varchar或nvarchar类型,那么sql引擎先进行类型转换,如果转换失败,则返回错误信息 否则继续执行此函数 2 如果参数等于零的数值,那么就返回空字符串 3 如果参数小于零,那么就返回null ,会导致字符串叠加操作失败 二、space 函数举例说明 例1:
/*mssql space函数 生成空格*/ declare @a varchar(30) set @a ='www' print @a+'空格开始:'+space('20')+'空格结束' go
print '空格开始:'+space(2)+'空格结束' print '空格开始:'+space(0)+'空格结束' print '空格开始:'+space(-1)+'空格结束'

MSSQL系列(三):系统函数之字符串函数

MSSQL系列(三):系统函数之字符串函数

MSSQL系列(三):系统函数之字符串函数1.ascii() :返回ascii码--返回ascii码select ascii('a')go2.char() :返回ascii对应的字符--返回ascii对应的字符select char(65)go3.charindex() :返回字符串起始位置--返回字符串起始位置select charindex('s','mssql')select charindex('s','mssql',2)select charindex('s','mssql',3)select charindex('s','mssql',4)go4.difference() :返回soundex值之差--返回soundex值之差select difference('mssql','mssql')select difference('mssql','mysql')go5.left() :取左边指定个数的字符--取左边指定个数的字符select left('mssql',1)select left('mssql',6)go6.len() :字符个数--字符个数select len('mssql')select len('你好')go7.lower() :⼤写字母转⼩写字母--⼤写字母转⼩写字母select lower('MSSQL')go8.ltrim() :清除左边字符的空格--清除左边字符的空格select ltrim(' mssql')go9.nchar() :返回unicode值--返回unicode值select nchar(63)select nchar(32)go10.patindex() :返回表达式模式的字符串的起始位置--返回表达式模式的字符串的起始位置select patindex('%s%','mssql')select patindex('s','mssql')select patindex('%s[a-z]__','mssql')go11.quotename() :返回带有分隔符的 unicode 字符串,主要作⽤就是在sql语句中,给列名、表名等加个[]、'--返回带有分隔符的 unicode 字符串,主要作⽤就是在SQL语句中,给列名、表名等加个[]、’’select quotename('mssql','[]')select quotename('mssql','''')go12.replace() :替换字符串--替换字符串select replace('mysql','y','s')select replace(' mssql ','','')go13.replicate() :按指定次数重复字符表达式--按指定次数重复字符表达式select replicate('mssql',2)select replicate('你好!',3)go14.reverse() :返回字符表达式的逆向表达式--返回字符表达式的逆向表达式select reverse('你好!')select reverse('mssql')go15.right() :取右边指定个数的字符--取右边指定个数的字符select right('mssql',1)select right('你好!',2)go16.rtrim() :清除右边字符的空格--清除右边字符的空格select rtrim(' mssql ')go17.soundex() :返回由四个字符表⽰的soundex代码--返回由四个字符表⽰的soundex代码select soundex('mssql')go18.space() :返回由重复空格组成的字符串--返回由重复空格组成的字符串select space(2)go19.str() :将数值表达式转换字符表达式--将数值表达式转换字符表达式select str(3,1,3)select str(23,1,5)select str(23.34,8,3)go20.string_split() :分隔字符串,返回表,列名为value--分隔字符串,返回表,列名为valueselect value from string_split('mssql-mysql-oracle','-')go21.stuff() :在⼀个字符串中,删除指定长度的字符,并在该位置插⼊⼀个新的字符串--在⼀个字符串中,删除指定长度的字符,并在该位置插⼊⼀个新的字符串select stuff('mssql',1,2,'my')go22.substring() :截取指定的字符串--截取指定的字符串select substring('mssql',3,3)go23.unicode() :返回表达式第⼀个字符unicode的整数值--返回表达式第⼀个字符unicode的整数值select unicode('A')select unicode('12456')go24.upper() :⼩写字母转⼤写字母--⼩写字母转⼤写字母select upper('mssql')go25.trim() :去除左右两边空格,注意2017以下不⽀持--去除左右两边空格select trim(' mssql ')go26.concat_ws() :将分隔符的字符串连接--将分隔符的字符串连接select concat_ws(',','mssql','mysql')go。

MySQL中的字符串操作函数

MySQL中的字符串操作函数

MySQL中的字符串操作函数在数据库管理系统中,字符串操作是非常常见和重要的内容之一。

MySQL是最流行的开源关系型数据库管理系统之一,为了方便开发者对字符串进行处理,MySQL提供了各种各样的字符串操作函数。

本文将介绍MySQL中常用的字符串操作函数,并且通过实际例子展示它们的用法和作用。

1. CONCAT函数CONCAT函数用于连接两个或多个字符串。

它可以接受两个或多个字符串作为参数,并返回连接后的结果。

例如:SELECT CONCAT('Hello', ' ', 'World') AS Result;执行以上SQL语句,将返回"Hello World"。

CONCAT函数可以接受任意数量的参数,并将它们连接成一个字符串。

2. SUBSTRING函数SUBSTRING函数用于提取指定位置开始的子字符串。

它可以接受三个参数:原字符串、起始位置和子字符串的长度。

例如:SELECT SUBSTRING('MySQL', 2, 3) AS Result;执行以上SQL语句,将返回"ySQ"。

SUBSTRING函数从第2个字符开始提取3个字符。

3. REPLACE函数REPLACE函数用于替换字符串中的指定字符或子字符串。

它接受三个参数:原字符串、需要替换的子字符串和替换后的字符串。

例如:SELECT REPLACE('Hello World', 'World', 'MySQL') AS Result;执行以上SQL语句,将返回"Hello MySQL"。

REPLACE函数将原字符串中的"World"替换为"MySQL"。

4. UPPER和LOWER函数UPPER函数用于将字符串中的所有字符转换为大写,LOWER函数用于将字符串中的所有字符转换为小写。

sql常用格式化函数及字符串函数

sql常用格式化函数及字符串函数

sql常⽤格式化函数及字符串函数⼀.常⽤格式化函数1.⽇期转字符串mysql:date_format()函数select date_format(now(), '%Y-%m-%d %H:%i:%s');%Y:年份%m:⽉份号(01-12)%d:⼀个⽉⾥的⽇(01-31)pg:to_char()函数select to_char(current_timestamp, 'YYYY-MM-DD HH24:MI:SS');YYYY:年份MM:⽉份号(01-12)DD:⼀个⽉⾥的⽇(01-31)HH24:⼀天的⼩时数(00-23)MI:分钟(00-59)SS:秒(00-59)格式化格式可以由以上英⽂字母任意搭配,如可以是'YYYY-MM-DD HH24:MI:SS',也可以是'YYYY-MM-DD',也可以是'YYYYMMDD'。

2.字符串转⽇期mysql:str_to_date()函数select str_to_date('2017-09-18', '%Y-%m-%d %H:%i:%s');select str_to_date('2017-09-18 12:08:35', '%Y-%m-%d %H:%i:%s');pg:select to_date('2017-09-18','YYYY-MM-DD');select to_timestamp('2017-09-18 22:41:50','YYYY-MM-DD HH24:MI:SS');待解析的字符串可以包含时分秒,也可以不包含时分秒。

解析格式同样可以任意指定。

to_date只会取到⽇期,不会取到时分秒,时间是该⽇的0点0分0秒,⽽不管待解析的字符串中时分秒是什么。

MSSQLServer的STRING_SPLIT和STRING_AGG函数

MSSQLServer的STRING_SPLIT和STRING_AGG函数

MSSQLServer的STRING_SPLIT和STRING_AGG函数在较新版本的SQL中,出现有2个函数,STRING_SPLIT和STRING_AGG,前者是把带有分隔的字符串转换为表,⽽后者却是把表某⼀表转换为以某种字符分隔的字符串。

如下⾯:DECLARE@str NVARCHAR(MAX) = N'ADS,ADFD,AGF,SDFGSFD,DSFG,RET,TRY,T,ADF,GSF,UY,QWERQ'把它转存为表:DECLARE@dump_data AS TABLE([value]NVARCHAR(MAX))INSERT INTO@dump_data ([value]) SELECT[value]FROM STRING_SPLIT(@str,',')Source Code反转,需要把临时表这列[value] 转换为⼀个字符串:SELECT STRING_AGG([value], ',')FROM@dump_dataSource Code其实STRING_AGG这函数,还可以对新串联的字符进⾏排序:SELECT STRING_AGG([value], ',') WITHIN GROUP (ORDER BY[value])FROM@dump_dataSource Code如果你不想创建临时表,把拆分的数据插⼊临时表,步骤繁复。

可以使⽤派⽣表来进⾏:SELECT STRING_AGG([value], ',') WITHIN GROUP (ORDER BY[value])FROM (SELECT[value]FROM STRING_SPLIT(@str,',')) sourceSource Code或者使⽤⼀般资料表运算式CTE (Common Table Expression);WITH dump_data AS(SELECT[value]FROM STRING_SPLIT(@str,','))SELECT STRING_AGG([value], ',') WITHIN GROUP (ORDER BY[value])FROM dump_data;Source Code。

mysql中常用函数

mysql中常用函数

mysql中常用函数函数是MySQL中非常重要的一部分,它们可以帮助我们更方便、更高效地操作数据库。

下面是MySQL中常用函数的详细介绍:1.字符串函数:1.1 CONCAT:将两个或多个字符串连接起来。

语法:CONCAT(string1,string2,...)示例:SELECT CONCAT('Hello',' ','World'); //输出结果为'Hello World'1.2 SUBSTRING:返回一个字符串的子串。

语法:SUBSTRING(string,start,length)示例:SELECT SUBSTRING('Hello World',7,5); //输出结果为'World'1.3 REPLACE:替换一个字符串中的所有匹配项。

语法:REPLACE(string,old,new)示例:SELECT REPLACE('Hello World','World','MySQL'); //输出结果为'Hello MySQL'2.数值函数:2.1 ABS:返回一个数的绝对值。

语法:ABS(number)示例:SELECT ABS(-10); //输出结果为102.2 CEILING/FLOOR:向上/向下取整。

语法:CEILING(number) / FLOOR(number)示例:SELECT CEILING(3.14); //输出结果为42.3 RAND:返回一个随机数。

语法:RAND()示例:SELECT RAND(); //输出结果为0-1之间的随机数3.日期和时间函数:3.1 NOW/CURDATE/CURTIME: 返回当前日期/时间信息。

语法: NOW() / CURDATE() / CURTIME()示例: SELECT NOW(); // 输出结果为当前日期和时间3.2 DATE_FORMAT: 格式化日期和时间信息。

MySQL数据库常用函数大全

MySQL数据库常用函数大全

MySQL数据库常用函数大全字符串函数字符串函数是最常用的一种函数,MySQL支持很多种字符串函数。

下列是MySQL支持的字符串函数表。

1、LOWER(str) 和UPPER(str)函数:用于转换大小写。

2、CONCAT(s1,s2…sn): 把传入的参数拼接成一个字符串。

任何和NULL进行字符串拼接的结果都是NULL。

3、LEFT(str,x) 和RIGHT(str,x) 函数:分别返回字符串最左边的x个字符和最右边的x个字符。

如果第二个参数是NULL,那么将不会返回任何字符串。

4、INSERT(str,x,y,instr): 将字符串str 从指定x的位置开始,取y个长度的字串替换为instr。

5、LTRIM(str)和RTRIM(str)分别表示去掉字符串str左侧和右侧的空格。

6、REPEAT(str,x)函数:返回str 重复x次的结果。

7、TRIM(str)函数,用于去掉目标字符串的空格。

8、SUBSTRING(str,x,y)函数,返回从字符串str中第x位置起y个字符长度的字符串。

9、LPAD(str,n,pad)和RPAD(str,n,pad)函数,用字符串pad对str左边和右边进行填充,直到长度为n个字符长度。

10、STRCMP(s1,s2)用于比较字符串s1和s2的ASCII值大小。

如果s1<s2,则返回-1,如果s1=s2,则返回0,如果s1>s2,则返回1。

11、REPLACE(str,a,b),用字符串b替换字符串str中所有出现的字符串a。

数值函数MySQL支持数值函数,这些函数能够处理很多数值运算。

1、A B S ( x )函数,返回x 的绝对值2、C E I L ( x )函数,返回大于x 的整数。

、M O D ( x , y ),对x 和y 进行取模操作。

、R O U N D ( x , y )返回x 四舍五入后保留位小数的值,如果是整数,那么y 为就是0,如不指定,那么y 默认也是0。

sql 字符串查找 函数

sql 字符串查找 函数

sql 字符串查找函数SQL字符串查找函数是一种非常有用的工具,它可以帮助我们在SQL查询中定位和过滤特定字符串。

无论是在表达式中,还是在WHERE子句或SELECT语句中使用这些函数,都可以加强查询的灵活性和准确性。

在本文中,我将一步一步地回答有关SQL字符串查找函数的问题,以帮助您更好地理解和使用它们。

第一步:了解SQL字符串查找函数的基本概念SQL字符串查找函数是一组用于在文本字符串中查找指定模式的函数。

它们通常用于按特定条件搜索和过滤数据。

在不同的数据库管理系统中,可能会有不同的字符串查找函数,但大多数常用的函数包括以下几种:LIKE、INSTR、CHARINDEX、PATINDEX、REGEXP、SUBSTRING和REPLACE。

下面我们将更详细地讨论其中的几个函数。

第二步:使用LIKE函数查找字符串LIKE函数是最常见和最常用的字符串查找函数之一。

它用于在文本字符串中查找与指定模式相匹配的子字符串。

在LIKE函数中,可以使用特殊字符通配符,如百分比符号()和下划线(_),以及逻辑运算符(OR和AND)来定义搜索条件。

例如,我们可以使用以下语句在一个名为"customers"的表中查找所有以字母"A"开头的客户姓名:SELECT * FROM customers WHERE customer_name LIKE 'A'第三步:使用INSTR和CHARINDEX函数查找字符串的位置INSTR函数常用于Oracle数据库,而CHARINDEX函数则常用于SQL Server数据库。

这两个函数都用于查找一个字符串中另一个字符串的位置。

它们的语法非常相似,只是在不同的数据库管理系统中有所不同。

以下是两个函数的示例用法:在Oracle数据库中,我们可以使用INSTR函数来查找一个子字符串在另一个字符串中的位置。

例如,我们可以使用以下语句查找所有包含"apple"的产品描述:SELECT * FROM products WHERE INSTR(product_description,'apple') > 0在SQL Server数据库中,我们可以使用CHARINDEX函数来实现相同的功能。

sql中的字符串匹配、函数大全

sql中的字符串匹配、函数大全

sql中的字符串匹配、函数⼤全1.语法基础2.⾼级语法编程3.⾼级查询⾼级查询在数据库中⽤得是最频繁的,也是应⽤最⼴泛的。

Ø 基本常⽤查询--selectselect*from student;--all 查询所有select all sex from student;--distinct 过滤重复select distinct sex from student;--count 统计select count(*) from student;select count(sex) from student;select count(distinct sex) from student;--top 取前N条记录select top3*from student;--alias column name 列重命名select id as编号, name '名称', sex 性别from student;--alias table name 表重命名select id, name, s.id, from student s;--column 列运算select (age + id) col from student;select +'-'+ from classes c, student s where s.cid = c.id;--where 条件select*from student where id =2;select*from student where id >7;select*from student where id <3;select*from student where id <>3;select*from student where id >=3;select*from student where id <=5;select*from student where id !>3;select*from student where id !<5;--and 并且select*from student where id >2and sex =1;--or 或者select*from student where id =2or sex =1;--between ... and ... 相当于并且select*from student where id between2and5;select*from student where id not between2and5;--like 模糊查询select*from student where name like'%a%';select*from student where name like'%[a][o]%';select*from student where name not like'%a%';select*from student where name like'ja%';select*from student where name not like'%[j,n]%';select*from student where name like'%[j,n,a]%';select*from student where name like'%[^ja,as,on]%';select*from student where name like'%[ja_on]%';--in ⼦查询select*from student where id in (1, 2);--not in 不在其中select*from student where id not in (1, 2);--is null 是空select*from student where age is null;--is not null 不为空select*from student where age is not null;--order by 排序select*from student order by name;select*from student order by name desc;select*from student order by name asc;--group by 分组按照年龄进⾏分组统计select count(age), age from student group by age;按照性别进⾏分组统计select count(*), sex from student group by sex;按照年龄和性别组合分组统计,并排序select count(*), sex from student group by sex, age order by age;按照性别分组,并且是id⼤于2的记录最后按照性别排序select count(*), sex from student where id >2group by sex order by sex;select count(*), (sex * id) new from student where id >2group by sex * id order by sex * id;--group by all 所有分组按照年龄分组,是所有的年龄select count(*), age from student group by all age;--having 分组过滤条件按照年龄分组,过滤年龄为空的数据,并且统计分组的条数和现实年龄信息select count(*), age from student group by age having age is not null;按照年龄和cid组合分组,过滤条件是cid⼤于1的记录select count(*), cid, sex from student group by cid, sex having cid >1;按照年龄分组,过滤条件是分组后的记录条数⼤于等于2select count(*), age from student group by age having count(age) >=2;按照cid和性别组合分组,过滤条件是cid⼤于1,cid的最⼤值⼤于2select count(*), cid, sex from student group by cid, sex having cid >1and max(cid) >2;Ø 嵌套⼦查询⼦查询是⼀个嵌套在select、insert、update或delete语句或其他⼦查询中的查询。

mssql中常用的字符串函数大集合

mssql中常用的字符串函数大集合

mssql中常用的字符串函数大集合1.绝对值SQL:select abs(-1) valueO:select abs(-1) value from dual2.取整(大)S:select ceiling(-1.001) valueO:select ceil(-1.001) value from dual3.取整(小)S:select floor(-1.001) valueO:select floor(-1.001) value from dual4.取整(截取)S:select cast(-1.002 as int) valueO:select trunc(-1.002) value from dual5.四舍五入S:select round(1.23456,4) value 1.23460O:select round(1.23456,4) value from dual 1.2346 6.e为底的幂S:select Exp(1) value 2.7182818284590451O:select Exp(1) value from dual 2.718281827.取e为底的对数S:select log(2.7182818284590451) value 1O:select ln(2.7182818284590451) value from dual; 1 8.取10为底对数S:select log10(10) value 1O:select log(10,10) value from dual; 19.取平方S:select SQUARE(4) value 16O:select power(4,2) value from dual 1610.取平方根S:select SQRT(4) value 2O:select SQRT(4) value from dual 211.求任意数为底的幂S:select power(3,4) value 81O:select power(3,4) value from dual 8112.取随机数S:select rand() valueO:select sys.dbms_random.value(0,1) value from dual;13.取符号S:select sign(-8) value -1O:select sign(-8) value from dual -1----------数学函数14.圆周率S:SELECT PI() value 3.1415926535897931O:不知道15.sin,cos,tan 参数都以弧度为单位例如:select sin(PI()/2) value 得到1(SQLServer)16.Asin,Acos,Atan,Atan2 返回弧度17.弧度角度互换(SQLServer,Oracle不知道)DEGREES:弧度-〉角度RADIANS:角度-〉弧度---------数值间比较18. 求集合最大值S:select max(value) value from(select 1 valueunionselect -2 valueunionselect 4 valueunionselect 3 value)aO:select greatest(1,-2,4,3) value from dual19. 求集合最小值S:select min(value) value from(select 1 valueunionselect -2 valueunionselect 4 valueunionselect 3 value)aO:select least(1,-2,4,3) value from dual20.如何处理null值(F2中的null以10代替)S:select F1,IsNull(F2,10) value from TblO:select F1,nvl(F2,10) value from Tbl--------数值间比较21.求字符序号S:select ascii(&#39;a&#39;) valueO:select ascii(&#39;a&#39;) value from dual22.从序号求字符S:select char(97) valueO:select chr(97) value from dual23.连接S:select &#39;11&#39;+&#39;22&#39;+&#39;33&#39; valueO:select CONCAT(&#39;11&#39;,&#39;22&#39;)||33 value from dual23.子串位置--返回3S:select CHARINDEX(&#39;s&#39;,&#39;sdsq&#39;,2) valueO:select INSTR(&#39;sdsq&#39;,&#39;s&#39;,2) value from dual23.模糊子串的位置--返回2,参数去掉中间%则返回7S:select patindex(&#39;%d%q%&#39;,&#39;sdsfasdqe&#39;) valueO:oracle没发现,但是instr可以通过第四霾问刂瞥鱿执问?BR&gt; select INSTR(&#39;sdsfasdqe&#39;,&#39;sd&#39;,1,2) value from dual 返回624.求子串S:select substring(&#39;abcd&#39;,2,2) valueO:select substr(&#39;abcd&#39;,2,2) value from dual25.子串代替返回aijklmnefS:SELECT STUFF(&#39;abcdef&#39;, 2, 3, &#39;ijklmn&#39;) valueO:SELECT Replace(&#39;abcdef&#39;, &#39;bcd&#39;, &#39;ijklmn&#39;) value from dual26.子串全部替换S:没发现O:selectTranslate(&#39;fasdbfasegas&#39;,&#39;fa&#39;,&#39;我&#39; ) value from dual 27.长度S:len,datalengthO:length28.大小写转换lower,upper29.单词首字母大写S:没发现O:select INITCAP(&#39;abcd dsaf df&#39;) value from dual30.左补空格(LPAD的第一个参数为空格则同space函数)S:select space(10)+&#39;abcd&#39; valueO:select LPAD(&#39;abcd&#39;,14) value from dual31.右补空格(RPAD的第一个参数为空格则同space函数)S:select &#39;abcd&#39;+space(10) valueO:select RPAD(&#39;abcd&#39;,14) value from dual32.删除空格S:ltrim,rtrimO:ltrim,rtrim,trim33. 重复字符串S:select REPLICATE(&#39;abcd&#39;,2) valueO:没发现34.发音相似性比较(这两个单词返回值一样,发音相同)S:SELECT SOUNDEX (&#39;Smith&#39;), SOUNDEX (&#39;Smythe&#39;)O:SELECT SOUNDEX (&#39;Smith&#39;), SOUNDEX (&#39;Smythe&#39;) from dualSQLServer中用SELECT DIFFERENCE(&#39;Smithers&#39;, &#39;Smythers&#39;) 比较soundex的差返回0-4,4为同音,1最高--------------日期函数35.系统时间S:select getdate() valueO:select sysdate value from dual36.前后几日直接与整数相加减37.求日期S:select convert(char(10),getdate(),20) valueO:select trunc(sysdate) value from dualselect to_char(sysdate,&#39;yyyy-mm-dd&#39;) value from dual38.求时间S:select convert(char(8),getdate(),108) valueO:select to_char(sysdate,&#39;hh24:mm:ss&#39;) value from dual39.取日期时间的其他部分S:DATEPART 和DATENAME 函数(第一个参数决定)O:to_char函数第二个参数决定参数---------------------------------下表需要补充year yy, yyyyquarter qq, q (季度)month mm, m (m O无效)dayofyear dy, y (O表星期)day dd, d (d O无效)week wk, ww (wk O无效)weekday dw (O不清楚)Hour hh,hh12,hh24 (hh12,hh24 S无效)minute mi, n (n O无效)second ss, s (s O无效)millisecond ms (O无效)----------------------------------------------40.当月最后一天S:不知道O:select LAST_DAY(sysdate) value from dual41.本星期的某一天(比如星期日)S:不知道O:SELECT Next_day(sysdate,7) vaule FROM DUAL;42.字符串转时间S:可以直接转或者select cast(&#39;2004-09-08&#39;as datetime) valueO:SELECT To_date(&#39;2004-01-05 22:09:38&#39;,&#39;yyyy-mm-dd hh24-mi-ss&#39;) vaule FROM DUAL;43.求两日期某一部分的差(比如秒)S:select datediff(ss,getdate(),getdate()+12.3) valueO:直接用两个日期相减(比如d1-d2=12.3)SELECT (d1-d2)*24*60*60 vaule FROM DUAL;44.根据差值求新的日期(比如分钟)S:select dateadd(mi,8,getdate()) valueO:SELECT sysdate+8/60/24 vaule FROM DUAL;45.求不同时区时间S:不知道O:SELECT New_time(sysdate,&#39;ydt&#39;,&#39;gmt&#39; ) vaule FROM DUAL; -----时区参数,北京在东8区应该是Ydt-------AST ADT 大西洋标准时间BST BDT 白令海标准时间CST CDT 中部标准时间EST EDT 东部标准时间GMT 格林尼治标准时间HST HDT 阿拉斯加—夏威夷标准时间MST MDT 山区标准时间NST 纽芬兰标准时间PST PDT 太平洋标准时间YST YDT YUKON标准时间Oracle支持的字符函数和它们的Microsoft SQL Server等价函数:函数Oracle Microsoft SQL Server把字符转换为ASCII ASCII ASCII字串连接CONCAT (expression + expression)把ASCII转换为字符CHR CHAR返回字符串中的开始字符(左起)INSTR CHARINDEX把字符转换为小写LOWER LOWER把字符转换为大写UPPER UPPER填充字符串的左边LPAD N/A清除开始的空白LTRIM LTRIM清除尾部的空白RTRIM RTRIM字符串中的起始模式(pattern)INSTR PATINDEX多次重复字符串RPAD REPLICATE字符串的语音表示SOUNDEX SOUNDEX重复空格的字串RPAD SPACE从数字数据转换为字符数据TO_CHAR STR子串SUBSTR SUBSTRING替换字符REPLACE STUFF将字串中的每个词首字母大写INITCAP N/A翻译字符串TRANSLATE N/A字符串长度LENGTH DATELENGTH or LEN列表中最大的字符串GREATEST N/A列表中最小的字符串LEAST N/A如果为NULL则转换字串NVL ISNULL日期函数函数Oracle Microsoft SQL Server日期相加(date column +/- value) orADD_MONTHS DATEADD两个日期的差(date column +/- value) or MONTHS_BETWEEN DATEDIFF当前日期和时间SYSDATE GETDATE()一个月的最后一天LAST_DAY N/A时区转换NEW_TIME N/A日期后的第一个周日NEXT_DAY N/A代表日期的字符串TO_CHAR DATENAME代表日期的整数TO_NUMBER(TO_CHAR)) DATEPART日期舍入ROUND CONVERT日期截断TRUNC CONVERT字符串转换为日期TO_DATE CONVERT如果为NULL则转换日期NVL ISNULL转换函数函数Oracle Microsoft SQL Server数字转换为字符TO_CHAR CONVERT字符转换为数字TO_NUMBER CONVERT日期转换为字符TO_CHAR CONVERT字符转换为日期TO_DATE CONVERT16进制转换为2进制HEX_TO_RAW CONVERT 2进制转换为16进制RAW_TO_HEX CONVERT其它行级别的函数函数Oracle Microsoft SQL Server返回第一个非空表达式DECODE COALESCE当前序列值CURRVAL N/A下一个序列值NEXTVAL N/A如果exp1 = exp2, 返回null DECODE NULLIF用户登录账号ID数字UID SUSER_ID用户登录名USER SUSER_NAME用户数据库ID数字UID USER_ID用户数据库名USER USER_NAME当前用户CURRENT_USER CURRENT_USER用户环境(audit trail) USERENV N/A在CONNECT BY子句中的级别LEVEL N/A合计函数函数Oracle Microsoft SQL ServerAverage AVG AVGCount COUNT COUNTMaximum MAX MAXMinimum MIN MINStandard deviation STDDEV STDEV or STDEVPSummation SUM SUMVariance VARIANCE VAR or VARPOracle还有一个有用的函数EXTRACT,提取并且返回日期时间或时间间隔表达式中特定的时间域:EXTRACT(YEAR FROM 日期)。

sql 字符串函数

sql 字符串函数

sql 字符串函数
SQL字符串函数是SQL中的一种函数,用于操纵字符串,如查找子字符串、替换字符串、获取子字符串、提取字符串中字符的数量等,以完成灵活且复杂的字符串操作。

SQL中常用的字符串函数有:
1.LEN()函数:返回字符串中字符的数量。

2.LEFT()函数:可以从字符串左边开始返回指定数量的字符。

3.RIGHT()函数:可以从字符串右边开始返回指定数量的字符。

4.INSTR()函数:可以查找指定的字符串在另一个字符串中的位置。

5.SUBSTR()函数:可以从字符串中提取子字符串。

6.REPLACE()函数:可以用另一个字符串中的字符替换字符串中的字符。

7.LOWER()函数:可以将字符串中的所有字符变为小写字母。

8.UPPER()函数:可以将字符串中的所有字符变为大写字母。

9.CONCAT()函数:可以将两个字符串合并为一个字符串。

10.LPAD()函数:可以将字符串前面用特定的字符填充指定的位数。

11.RPAD()函数:可以将字符串后面用特定的字符填充指定的位数。

以上就是SQL中常用的几种字符串函数,可以满足大多数SQL用户对字符串操作的需求。

SQL函数大全汇总

SQL函数大全汇总

SQL函数大全汇总1.字符串函数:- CONCAT(str1, str2, ...):将多个字符串合并为一个字符串。

- LENGTH(str):计算字符串的长度。

- UPPER(str):将字符串转换为大写。

- LOWER(str):将字符串转换为小写。

- TRIM([characters FROM] str):去除字符串两端的指定字符。

- SUBSTRING_INDEX(str, delimiter, count):根据指定的分隔符,返回字符串的指定部分。

- REPLACE(str, search, replace):将字符串中的指定内容替换为新的内容。

- LEFT(str, length):返回字符串的左侧指定长度的部分。

- RIGHT(str, length):返回字符串的右侧指定长度的部分。

2.数值函数:- ABS(num):返回num的绝对值。

- CEILING(num):返回大于或等于num的最小整数。

- FLOOR(num):返回小于或等于num的最大整数。

- ROUND(num, precision):将num四舍五入到指定的精度。

-RAND(:返回一个0到1之间的随机数。

- MOD(num1, num2):返回num1除以num2的余数。

- POWER(num1, num2):返回num1的num2次幂。

3.日期和时间函数:-CURDATE(:返回当前日期。

-CURTIME(:返回当前时间。

-NOW(:返回当前日期和时间。

- DATE_FORMAT(date, format):将日期根据指定的格式进行格式化。

- YEAR(date):返回日期的年份部分。

- MONTH(date):返回日期的月份部分。

- DAY(date):返回日期的日部分。

4.聚合函数:- AVG(column):返回指定列的平均值。

- SUM(column):返回指定列的总和。

- COUNT(column):返回指定列的行数。

sql 字符函数

sql 字符函数

sql 字符函数SQL字符函数是SQL语言中的一类函数,用于处理字符串类型的数据。

这些函数可以用于字符串的截取、替换、转换等操作,使得我们可以更加方便地对字符串进行处理。

在本文中,我们将介绍SQL字符函数的常见用法和示例。

1. SUBSTRING函数SUBSTRING函数用于截取字符串的一部分。

它的语法如下:SUBSTRING(string, start, length)其中,string是要截取的字符串,start是截取的起始位置,length 是要截取的长度。

例如,我们可以使用以下语句截取字符串的前三个字符:SELECT SUBSTRING('Hello World', 1, 3);输出结果为:Hel2. REPLACE函数REPLACE函数用于替换字符串中的某个子串。

它的语法如下:REPLACE(string, old_substring, new_substring)其中,string是要替换的字符串,old_substring是要被替换的子串,new_substring是替换后的新子串。

例如,我们可以使用以下语句将字符串中的所有空格替换为下划线:SELECT REPLACE('Hello World', ' ', '_');输出结果为:Hello_World3. UPPER和LOWER函数UPPER函数用于将字符串转换为大写字母,LOWER函数用于将字符串转换为小写字母。

它们的语法如下:UPPER(string)LOWER(string)例如,我们可以使用以下语句将字符串转换为大写字母:SELECT UPPER('Hello World');输出结果为:HELLO WORLD4. CONCAT函数CONCAT函数用于将多个字符串连接起来。

它的语法如下:CONCAT(string1, string2, ...)其中,string1、string2等是要连接的字符串。

sql字符串函数大全

sql字符串函数大全

sql字符串函数大全STR()把数值型数据转换为字符型数据。

STR (<float_expression>[,length[, <decimal>]])length 指定返回的字符串的长度,decimal 指定返回的小数位数。

如果没有指定长度,缺省的length 值为10, decimal 缺省值为0。

当length 或者decimal 为负值时,返回NULL;当length 小于小数点左边(包括符号位)的位数时,返回length 个*;先服从length ,再取decimal ;当返回的字符串位数小于length ,左边补足空格。

一、去空格函数1、LTRIM() 把字符串头部的空格去掉。

2、RTRIM() 把字符串尾部的空格去掉。

二、取子串函数1、left()LEFT (<character_expression>, <integer_expression>)返回character_expression 左起 integer_expression 个字符。

2、RIGHT()RIGHT (<character_expression>, <integer_expression>)返回character_expression 右起 integer_expression 个字符。

3、SUBSTRING()SUBSTRING (<expression>, <starting_ position>, length)返回从字符串左边第starting_ position 个字符起length个字符的部分。

三、字符串比较函数1、CHARINDEX()返回字符串中某个指定的子串出现的开始位置。

CHARINDEX (<’substring_expression’>, <expression>)其中substring _expression 是所要查找的字符表达式,expression 可为字符串也可为列名表达式。

sql字符串函数大全和使用方法示例

sql字符串函数大全和使用方法示例

sql字符串函数⼤全和使⽤⽅法⽰例SQL SERVER⽀持的字符串函数内容:复制代码代码如下:LEN(string)函数LOWER(string)函数UPPER (string)函数LTRIM(string)函数RTRIM (string)函数SUBSTRING(string,start_position,length)函数CHARINDEX(string,substring)函数LEFT (string,length)函数RIGHT (string,length) 函数ASCII(string)函数ASCII(string)函数(1)LEN(string)函数:此函数是⽤来计算⼀个字符串的长度,接受⼀个参数(可以为表⾥⾯的⼀个字符串字段,也可以为别的)。

这⾥⾯,是没有区分⼤⼩写(下⾯的函数都⼀样)。

LEN,len,还是Len都等同。

例⼦如下:SELECT FName, LEN(FName) FROM T_Person注:如果给LEN函数传递的参数是⼀个时间字段的话,那么返回的结果就不对,⽐如⼀个DateTime。

所以呢,这个函数是⽤来计算字符串的长度,别的类型参数也能返回结果,但是就不⼀定正确。

I、如果传进去的是NULL,那么返回出来的还是NULL。

II、对于⼀个字符串形如' a a ',返回的结果是4,⽽不是5。

即计算的结果不包括右侧全为空格字符串部分。

(2)LOWER(string)函数:此函数是⽤来把⼀字符串都转换为⼩写字符串。

跟LEN()函数⼀样,也接受⼀个参数。

复制代码代码如下:SELECT FName, LOWER(FName) FROM T_Person注:如果传进去的是NULL,那么返回出来的还是NULL。

(3)UPPER (string)函数:与LOWER()函数相反,此函数把字符串都转换为⼤写字符串。

也同样接受⼀个参数。

复制代码代码如下:SELECT FName, UPPER(FName) FROM T_Person注:如果传进去的是NULL,那么返回出来的还是NULL。

标准sql函数

标准sql函数

SQL(结构化查询语言)是用于管理关系数据库的标准编程语言。

它包括一系列的函数,这些函数可以在查询中用来处理和操作数据。

以下是一些常见的SQL函数及其简短的描述:1. **字符串函数**:这些函数用于处理和比较字符串。

* `CONCAT(string1, string2)`: 连接两个或多个字符串。

* `LENGTH(string)`: 返回字符串的长度。

* `UPPER(string)`: 将字符串转换为大写。

* `LOWER(string)`: 将字符串转换为小写。

* `TRIM(string)`: 去除字符串两端的空格。

2. **数值函数**:这些函数用于数值计算。

* `ABS(number)`: 返回数字的绝对值。

* `CEIL(number) or CEILING(number)`: 返回大于或等于给定数字的最小整数。

* `FLOOR(number)`: 返回小于或等于给定数字的最大整数。

* `ROUND(number, decimal_places)`: 对数字进行四舍五入到指定的小数位数。

3. **日期和时间函数**:这些函数用于处理日期和时间数据。

* `NOW()`: 返回当前日期和时间。

* `CURDATE() or CURRENT_DATE`: 返回当前日期。

* `CURTIME() or CURRENT_TIME`: 返回当前时间。

* `DATEDIFF(date1, date2)`: 返回两个日期之间的天数差异。

4. **转换函数**:这些函数用于数据类型之间的转换。

* `CAST(expression AS type[length])`: 将一个数据类型转换为另一个数据类型。

* `CONVERT(type[length], expression, style)`: 将一个数据类型转换为另一个数据类型,可以选择风格(例如,格式)。

5. **聚合函数**:这些函数用于对一组值执行计算,并返回单个值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

mssql中常用的字符串函数大集合1.绝对值SQL:select abs(-1) valueO:select abs(-1) value from dual2.取整(大)S:select ceiling(-1.001) valueO:select ceil(-1.001) value from dual3.取整(小)S:select floor(-1.001) valueO:select floor(-1.001) value from dual4.取整(截取)S:select cast(-1.002 as int) valueO:select trunc(-1.002) value from dual5.四舍五入S:select round(1.23456,4) value 1.23460O:select round(1.23456,4) value from dual 1.2346 6.e为底的幂S:select Exp(1) value 2.7182818284590451O:select Exp(1) value from dual 2.718281827.取e为底的对数S:select log(2.7182818284590451) value 1O:select ln(2.7182818284590451) value from dual; 1 8.取10为底对数S:select log10(10) value 1O:select log(10,10) value from dual; 19.取平方S:select SQUARE(4) value 16O:select power(4,2) value from dual 1610.取平方根S:select SQRT(4) value 2O:select SQRT(4) value from dual 211.求任意数为底的幂S:select power(3,4) value 81O:select power(3,4) value from dual 8112.取随机数S:select rand() valueO:select sys.dbms_random.value(0,1) value from dual;13.取符号S:select sign(-8) value -1O:select sign(-8) value from dual -1----------数学函数14.圆周率S:SELECT PI() value 3.1415926535897931O:不知道15.sin,cos,tan 参数都以弧度为单位例如:select sin(PI()/2) value 得到1(SQLServer)16.Asin,Acos,Atan,Atan2 返回弧度17.弧度角度互换(SQLServer,Oracle不知道)DEGREES:弧度-〉角度RADIANS:角度-〉弧度---------数值间比较18. 求集合最大值S:select max(value) value from(select 1 valueunionselect -2 valueunionselect 4 valueunionselect 3 value)aO:select greatest(1,-2,4,3) value from dual19. 求集合最小值S:select min(value) value from(select 1 valueunionselect -2 valueunionselect 4 valueunionselect 3 value)aO:select least(1,-2,4,3) value from dual20.如何处理null值(F2中的null以10代替)S:select F1,IsNull(F2,10) value from TblO:select F1,nvl(F2,10) value from Tbl--------数值间比较21.求字符序号S:select ascii(&#39;a&#39;) valueO:select ascii(&#39;a&#39;) value from dual22.从序号求字符S:select char(97) valueO:select chr(97) value from dual23.连接S:select &#39;11&#39;+&#39;22&#39;+&#39;33&#39; valueO:select CONCAT(&#39;11&#39;,&#39;22&#39;)||33 value from dual23.子串位置--返回3S:select CHARINDEX(&#39;s&#39;,&#39;sdsq&#39;,2) valueO:select INSTR(&#39;sdsq&#39;,&#39;s&#39;,2) value from dual23.模糊子串的位置--返回2,参数去掉中间%则返回7S:select patindex(&#39;%d%q%&#39;,&#39;sdsfasdqe&#39;) valueO:oracle没发现,但是instr可以通过第四霾问刂瞥鱿执问?BR&gt; select INSTR(&#39;sdsfasdqe&#39;,&#39;sd&#39;,1,2) value from dual 返回624.求子串S:select substring(&#39;abcd&#39;,2,2) valueO:select substr(&#39;abcd&#39;,2,2) value from dual25.子串代替返回aijklmnefS:SELECT STUFF(&#39;abcdef&#39;, 2, 3, &#39;ijklmn&#39;) valueO:SELECT Replace(&#39;abcdef&#39;, &#39;bcd&#39;, &#39;ijklmn&#39;) value from dual26.子串全部替换S:没发现O:selectTranslate(&#39;fasdbfasegas&#39;,&#39;fa&#39;,&#39;我&#39; ) value from dual 27.长度S:len,datalengthO:length28.大小写转换lower,upper29.单词首字母大写S:没发现O:select INITCAP(&#39;abcd dsaf df&#39;) value from dual30.左补空格(LPAD的第一个参数为空格则同space函数)S:select space(10)+&#39;abcd&#39; valueO:select LPAD(&#39;abcd&#39;,14) value from dual31.右补空格(RPAD的第一个参数为空格则同space函数)S:select &#39;abcd&#39;+space(10) valueO:select RPAD(&#39;abcd&#39;,14) value from dual32.删除空格S:ltrim,rtrimO:ltrim,rtrim,trim33. 重复字符串S:select REPLICATE(&#39;abcd&#39;,2) valueO:没发现34.发音相似性比较(这两个单词返回值一样,发音相同)S:SELECT SOUNDEX (&#39;Smith&#39;), SOUNDEX (&#39;Smythe&#39;)O:SELECT SOUNDEX (&#39;Smith&#39;), SOUNDEX (&#39;Smythe&#39;) from dualSQLServer中用SELECT DIFFERENCE(&#39;Smithers&#39;, &#39;Smythers&#39;) 比较soundex的差返回0-4,4为同音,1最高--------------日期函数35.系统时间S:select getdate() valueO:select sysdate value from dual36.前后几日直接与整数相加减37.求日期S:select convert(char(10),getdate(),20) valueO:select trunc(sysdate) value from dualselect to_char(sysdate,&#39;yyyy-mm-dd&#39;) value from dual38.求时间S:select convert(char(8),getdate(),108) valueO:select to_char(sysdate,&#39;hh24:mm:ss&#39;) value from dual39.取日期时间的其他部分S:DATEPART 和DATENAME 函数(第一个参数决定)O:to_char函数第二个参数决定参数---------------------------------下表需要补充year yy, yyyyquarter qq, q (季度)month mm, m (m O无效)dayofyear dy, y (O表星期)day dd, d (d O无效)week wk, ww (wk O无效)weekday dw (O不清楚)Hour hh,hh12,hh24 (hh12,hh24 S无效)minute mi, n (n O无效)second ss, s (s O无效)millisecond ms (O无效)----------------------------------------------40.当月最后一天S:不知道O:select LAST_DAY(sysdate) value from dual41.本星期的某一天(比如星期日)S:不知道O:SELECT Next_day(sysdate,7) vaule FROM DUAL;42.字符串转时间S:可以直接转或者select cast(&#39;2004-09-08&#39;as datetime) valueO:SELECT To_date(&#39;2004-01-05 22:09:38&#39;,&#39;yyyy-mm-dd hh24-mi-ss&#39;) vaule FROM DUAL;43.求两日期某一部分的差(比如秒)S:select datediff(ss,getdate(),getdate()+12.3) valueO:直接用两个日期相减(比如d1-d2=12.3)SELECT (d1-d2)*24*60*60 vaule FROM DUAL;44.根据差值求新的日期(比如分钟)S:select dateadd(mi,8,getdate()) valueO:SELECT sysdate+8/60/24 vaule FROM DUAL;45.求不同时区时间S:不知道O:SELECT New_time(sysdate,&#39;ydt&#39;,&#39;gmt&#39; ) vaule FROM DUAL; -----时区参数,北京在东8区应该是Ydt-------AST ADT 大西洋标准时间BST BDT 白令海标准时间CST CDT 中部标准时间EST EDT 东部标准时间GMT 格林尼治标准时间HST HDT 阿拉斯加—夏威夷标准时间MST MDT 山区标准时间NST 纽芬兰标准时间PST PDT 太平洋标准时间YST YDT YUKON标准时间Oracle支持的字符函数和它们的Microsoft SQL Server等价函数:函数Oracle Microsoft SQL Server把字符转换为ASCII ASCII ASCII字串连接CONCAT (expression + expression)把ASCII转换为字符CHR CHAR返回字符串中的开始字符(左起)INSTR CHARINDEX把字符转换为小写LOWER LOWER把字符转换为大写UPPER UPPER填充字符串的左边LPAD N/A清除开始的空白LTRIM LTRIM清除尾部的空白RTRIM RTRIM字符串中的起始模式(pattern)INSTR PATINDEX多次重复字符串RPAD REPLICATE字符串的语音表示SOUNDEX SOUNDEX重复空格的字串RPAD SPACE从数字数据转换为字符数据TO_CHAR STR子串SUBSTR SUBSTRING替换字符REPLACE STUFF将字串中的每个词首字母大写INITCAP N/A翻译字符串TRANSLATE N/A字符串长度LENGTH DATELENGTH or LEN列表中最大的字符串GREATEST N/A列表中最小的字符串LEAST N/A如果为NULL则转换字串NVL ISNULL日期函数函数Oracle Microsoft SQL Server日期相加(date column +/- value) orADD_MONTHS DATEADD两个日期的差(date column +/- value) or MONTHS_BETWEEN DATEDIFF当前日期和时间SYSDATE GETDATE()一个月的最后一天LAST_DAY N/A时区转换NEW_TIME N/A日期后的第一个周日NEXT_DAY N/A代表日期的字符串TO_CHAR DATENAME代表日期的整数TO_NUMBER(TO_CHAR)) DATEPART日期舍入ROUND CONVERT日期截断TRUNC CONVERT字符串转换为日期TO_DATE CONVERT如果为NULL则转换日期NVL ISNULL转换函数函数Oracle Microsoft SQL Server数字转换为字符TO_CHAR CONVERT字符转换为数字TO_NUMBER CONVERT日期转换为字符TO_CHAR CONVERT字符转换为日期TO_DATE CONVERT16进制转换为2进制HEX_TO_RAW CONVERT 2进制转换为16进制RAW_TO_HEX CONVERT其它行级别的函数函数Oracle Microsoft SQL Server返回第一个非空表达式DECODE COALESCE当前序列值CURRVAL N/A下一个序列值NEXTVAL N/A如果exp1 = exp2, 返回null DECODE NULLIF用户登录账号ID数字UID SUSER_ID用户登录名USER SUSER_NAME用户数据库ID数字UID USER_ID用户数据库名USER USER_NAME当前用户CURRENT_USER CURRENT_USER用户环境(audit trail) USERENV N/A在CONNECT BY子句中的级别LEVEL N/A合计函数函数Oracle Microsoft SQL ServerAverage AVG AVGCount COUNT COUNTMaximum MAX MAXMinimum MIN MINStandard deviation STDDEV STDEV or STDEVPSummation SUM SUMVariance VARIANCE VAR or VARPOracle还有一个有用的函数EXTRACT,提取并且返回日期时间或时间间隔表达式中特定的时间域:EXTRACT(YEAR FROM 日期)。

相关文档
最新文档