搜索
简帛阁>技术文章>常用的SQL函数

常用的SQL函数

常用的SQL函数

1.1 isNull(expression,value)

select
isnull(name,'无数据')
from student
where stuNo = '000000000001'
如果expression值不为null,返回表达式的值,如果为null,返回value值。

1.2 NULLIF(expression1,expression2)

SELECT
NULLIF(appntSex,insuredSex)
FROM table
WHERE contNo = '000000000001'
如果表达式1的值和表达式2的值相等,则返回null,否则返回表达式1的值。

1.3 NULL

NULL是个神奇的东西,表示空值,任何数与它加减乘除都是null。

1.4 COALESCE(expression1,expression2,expression3…)

SELECT
COALESCE(null,null,2,null,3)
接受一系列表达式或列,返回第一个非空的值,上例返回2;若全部为null,则会报错。

1.5 聚合函数

avg()    平均值 统计时注意null不会被统计,需要加上isnull(列名,0)
sum()    求和
count()   求行数
min()    求最小值
max()    求最大值

1.6 字符串操作函数

len() --计算字符串长度
lower() --转小写
upper () --大写
ltrim() --字符串左侧的空格去掉
rtrim () --字符串右侧的空格去掉
ltrim(rtrim('         bb        '))
left (str,length)  --返回str 左起 length个字符。
right (str,length)  --返回str 右起 length个字符。
substring(string,start,length)    --start起始位置(从1开始)
--substring('abcdef111',2,3) 返回‘bcd’
  (string,oldstr,newstr)
--replace('abcdef','abc','123') 返回:123def
reverse(str)  --将指定的字符串的字符排列顺序颠倒。
space(length)  --返回一个有指定长度的空白字符串。
stuff (str1,start, length,str2)  --用另一子串替换字符串指定位置、长度的子串。start开始为1
stuff('abcdef',2,3,'123')  返回:a123ef
如果起始位置为负或长度值为负,或者起始位置大于str1的长度,则返回null值。
如果length 长度大于str1中 start以右的长度,则str1只保留首字符。
replicate(str,length)
返回一个重复str字符串length次的字符串。
replicate('abc',3)    返回:abcabcabc

1.7 字符串比较函数

charindex(substr,str)  --返回字符串中某个指定的子串出现的开始位置。查找substr在str中第一次出现的位置,位置从1开始。0表示没找到
charindex('c','abcdefg')    返回:3
patindex('%substr%',str)  --返回字符串中某个指定的子串出现的开始位置。
patindex('a%','abcdefg')    返回:1
可以使用通配符,但 pattern 之前和之后必须有 % 字符(搜索第一个或最后一个字符时除外)。

1.8 数据类型转换函数

cast (str1 AS <data_ type>[ length ])  --将str1转换为data_ type类型
convert (<data_ type>[ length ], str1 [, style])  --将str1转换为data_ type类型length长度。
convert (nvarchar(10),getdate(),120) --返回:2017-10-21,120标识数据样式,或者说叫格式。

1.9 日期函数

day(date_expression)
返回date_expression中的日期值
month(date_expression)
返回date_expression中的月份值
year(date_expression)
返回date_expression中的年份值
dateadd()
dateadd (<datepart>, <number>, <date>)
返回指定日期date 加上指定的额外日期间隔number 产生的新日期。
datediff()
datediff (<datepart>, <date1>, <date2>)
返回两个指定日期在datepart 方面的不同之处,即date2 超过date1的差距值,其结果值是一个带有正负号的整数值。
dateadd(day,DATEDIFF(day,0,GETDATE()),0)返回下周第一天,改成year就是本年第一天,month是本月第一天,day是今天零点
datename()
datename(<datepart>, <date>)
以字符串的形式返回日期的指定部分此部分。由datepart 来指定。
datepart()
datepart (<datepart>, <date>)
以整数值的形式返回日期的指定部分。此部分由datepart 来指定。
datepart (dd, date) 等同于DAY (date)
datepart (mm, date) 等同于MONTH (date)
datepart (yy, date) 等同于YEAR (date)
getdate()
以datetime 的缺省格式返回系统当前的日期和时间。

2.0 数学函数

abs(numeric_expr)                   求绝对值
ceiling(numeric_expr)                取大于等于指定值的最小整数
exp(float_expr)                      取指数
floor(numeric_expr)                   小于等于指定值得最大整数
pi()                                  3.1415926.........
power(numeric_expr,power)            返回power次方       
rand([int_expr])                     随机数产生器
round(numeric_expr,int_expr)         安int_expr规定的精度四舍五入
sign(int_expr)                      根据正数,0,负数,,返回+1,0,-1
sqrt(float_expr)                     平方根

2.1 数据类型判断

isnumeric()     确定表达式是否为一个有效的数字类型。

2.2 case简单函数

CASE case_value
    WHEN when_value THEN statement_list
    [WHEN when_value THEN statement_list] ...
    [ELSE statement_list]END CASE
select
(CASE  sex
WHEN 0 then '男'
WHEN 1 then '女'
ELSE '未知'
END) as '性别'
from student where stuNo = '000000000001'

2.3 case搜索函数

CASE
    WHEN search_condition THEN statement_list
    [WHEN search_condition THEN statement_list] ...
    [ELSE statement_list]END CASE
select
(CASE   
WHEN sex = 0 then '男'
WHEN sex = 1 then '女'
ELSE '未知'
END) as '性别'
from student where stuNo = '000000000001'

持续更新中。。。。

常用Sql函数1:replace函数,替换字符。语法replace(originalstring,searchstring,replacestring)第一个参数你字符串,第二个参数你想替换部分
常用SQL函数11isNull(expression,value)selectisnull(name,无数据)fromstudentwherestuNo000000000001如果expressio
mysql_affected_rows—取得前一次MySQL操作所影响记录行数mysql_cpent_encoding—返回字符集名称mysql_close—关闭MySQL连接mysql_conn
1、字符串转Table(Func_SplitToTable)CREATEFUNCTION[dbo][Func_SplitToTable](@SplitStringNVARCHAR(MAX),@Sepa
sql常用函数方法DATEDIFF返回两个日期之间相差几天CONCAT字符串拼接COALESCE将空值替换成其他值返回第一个非空值TO_DATE时间格式转化DATEADD时间加几天SUBSTR字符串
聚合函数对一组值执行计算,并返回单个值,除了COUNT(*)外,聚合函数都会忽略Null值,聚合函数经常与SELECT语句GROUPBY、PARTITIONBY子句一起使用。1、AVG()此函数返回
replaceREPLACE(String,from_str,to_str)即:将String中所有出现from_str替换为to_str2leftleft(String,2)从左边选取两个3ri
载自:https://blogcsdnnet/mrtwofly/article/details/53939400一、数学函数ABS(x)返回x绝对值BIN(x)返回x二进制(OCT返回八进制,H
1withas语句with语句,允许hive定义一个sql片段,供整个sql使用,会将这个片段产生结果集保存在内存中,后续sql均可以访问这个结果集,作用与视图或临时表类似;with语句,相当于建
结构化查询语言(StructuredQueryLanguage,简称SQL语句)从单个函数使用上来看,较为简单,但是当表与表嵌套、几个函数组合使用,即可实现强大数据查询功能,能从数据库中快速便捷地