常用的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'

持续更新中。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
列举了SQL语句中大部分常用函数 Abs(number) 取得数值的绝对值。 Asc(String) 取得字符串表达式的第一个字符ASCII 码。 Atn(number) 取得一个角度的反正切值。 CallByName (object, procname, usecalltype,[args()]) 执行一个对象的方法、设定或传回对象的属性。 CBool(expression) 转换表达式为Boolean 型态。 CByte(expression) 转换表达式为Byte 型态。 CChar(expression) 转换表达式为字符型态。 CDate(expression) 转换表达式为Date 型态。 CDbl(expression) 转换表达式为Double 型态。 CDec(expression) 转换表达式为Decimal 型态。 CInt(expression) 转换表达式为Integer 型态。 CLng(expression) 转换表达式为Long 型态。 CObj(expression) 转换表达式为Object 型态。 CShort(expression) 转换表达式为Short 型态。 CSng(expression) 转换表达式为Single 型态。 CStr(expression) 转换表达式为String 型态。 Choose (index, choice-1[, choice-2, ... [, choice-n]]) 以索引值来选择并传回所设定的参数。 Chr(charcode) 以ASCII 码来取得字符内容。 Close(filenumberlist) 结束使用Open 开启的档案。 Cos(number) 取得一个角度的余弦值。 Ctype(expression, typename) 转换表达式的型态。 DateAdd(dateinterval, number, datetime) 对日期或时间作加减。 DateDiff(dateinterval, date1, date2) 计算两个日期或时间间的差值。 DatePart (dateinterval, date) 依接收的日期或时间参数传回年、月、日或时间。 DateSerial(year, month, day) 将接收的参数合并为一个只有日期的Date 型态的数据。 DateValue(datetime) 取得符合国别设定样式的日期值,并包含时间。 Day(datetime) 依接收的日期参数传回日 ....

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值