1.字符串替换
select replace('替换前字符串', '需替换字符串', '替换字符串');
例:把2替换为5
select replace('123', '2', '5');
2.字符串截取
select substr('替换钱字符串', '开始位置', '结束位置');
例:从第一位开始截取到第二位字符串
select substr('12324',1,2);
3.获取当前行
select ROW_NUMBER() OVER() as rownum
4.regex_split_to_table(col, ',');
利用正则表达式将字符串分割成表格。即将对指定列的值进行分割,分割后的每一个子串将转成一行,多个子串将转为多行。
例:select regexp_split_table('11, 12, 13', ',') as table_name;
5.regexp_split_to_array(col, ',') as array_table;
将某一字段的值以特定的符号进行分割后转换为数组的格式。
6.substring(string [ from int ] [ for int ])
第一个参数是需要被截取的字符串,第二个参数是第几位开始截取,起始位置是1,第三个参数表示截取的长度。
例:substring('abcdefg' from 2 for 3)
7.cast函数用于将某种数据类型的表达显式转换为另一种数据类型。
语法:cast ( expression as data_type )
要点:
(1)两个表达式的数据类型完全相同。
(2)两个表达式可隐性转换。
(3)必须显式转换数据类型。
8.convert()
和cast()函数功能相同,只是语法不同,cast()函数一般更容易使用,其功能也更简单。
convert()函数的优点事可以格式化日期和数值,他需要两个参数:第一个事目标数据类型;第二个是源数据;第三个是可选的,用于接受格式代码整型值。
例子:select convert ( varchar(5), 12345 )
9.stuff函数
stuff()函数用于删除指定长度的字符,并可以在指定的起点处插入另一组字符
语法:stuff ( character_expression, start, length, character_expression )
character_expression:一个字符数表达式。character_expression 可以是常量、变量,也可以是字符列或二进制数据列。
start:一个整数值,指定删除和插入的开始位置。如果 start 或 length 为负,则返回空字符串。如果 start 比第一个character_expression 长,则返回空字符串。start 可以是 bigint 类型。
length:一个整数。指定要删除的字符数。如果 length 比第一个 character_expression 长,则最多删除到最后一个character_expression 中的最后一个字符。length 可以是 bigint 类型。
返回类型:如果 character_expression 是受支持的字符数据类型,则返回字符数据。如果 character_expression 是一个受支持的 binary 数据类型,则返回二进制数据。
10.dateadd
返回已添加指定时间间隔的日期。
语法:dateadd( interval, number, date)
interval:字符串表达式,表示要添加的时间间隔。
number:数值表达式,表示要添加的时间间隔的个数。
date:variant或要添加interval的表示日期的文字。
例子:将95年1月31日加上一个月
dateadd( "m", 1, "31-jan-95" )
11.to_char
用于将日期、数字格式改成文本格式呈现,
其参数:to_char( values, 'format' , 'NLS_PARAM')
values:需要转变的值
'format':希望呈现的格式
'NLS_PARAM':可以是多种NLS_参数值,用于在to_char中临时指定NLS_的显式形式
12.SQL日期函数
(1)GETDATE函数
返回系统的当前日期,不使用参数,返回结果的长度为29个字符。
例:select GETDATE() as 现在时间
(2)DAY函数
返回一个整数,表示日期的“日”部分
例:select DAY(GETDATE()) as 日
(3)MONTH函数
返回一个表示日期中的月份日期
(4)YEAR函数
返回指定日期的年份
例:select YEAR(GETDATE()) as '年'
(5)DATEDIFF函数
返回日期和时间的边界数
例:select DATEDIFF(DAY, '2022-09-27', '2022-09-30') AS '时间差'
例:select DATEDIFF(HOUR, GETDATE(), '2022-09-28') as '小时差'
13.replace() 替换函数
语法:replace(string_expression, string_pattern, string_replacement)
string_expression:字符串表达式
string_pattern:想要查找的子字符串
string_replacement:想要替换成的子字符串
例子:将name字段中的a替换为A
select name, replace(name, 'a', 'A') as name ......
14.coslesce()
主要用来进行空值处理。
语法:coalesce(expression, value1, value2, ......)
expression:为待检测的表达式,而后面的参数个数不定,返回包括expression在内的所有参数中的第一个非空表达式,
如果expression不为空则返回expression否则判断value1是否是空值,
如果value1不为空则返回value1,否则判断value2是否为空值,
以此类推。
15.current_date
返回当前会话时区中的当前日期,没有参数,没有括号。
例子:current_date-interval '1 mon'
16.abs
用于返回数字的绝对值,正数和0返回数字本身,负数返回数字的相反数。