SQL Server使用表达式

2014-11-24 12:13:20 · 作者: · 浏览: 0
SQL Server使用表达式
一、表达式
表达式可以是常量、函数和公式的任何组合,它返回一个值。
1、创建表达式
可以使用常量、变量、运算符和函数等来创建SQL表达式
表达式的组成部分
示例
数字常量
1、2、3
字符串字面值
‘LastName’、’XXM’
日期
‘1/6/9’ ‘Jan 6, 1980’
数学运算符
*、/、%、+、-
字符串运算符
+
按位运算符
&、|、^、~
列名
Case表达式
Case Column1
when 1 then ‘on’
when 0 then ‘end’
end as Status
子查询
(Select 3)
用户定义的变量
@MyVariable
全局变量
@@error
标量函数
GetDate()、SysUser()
用户定义的函数
dbo.MyUDF()
注:Floor() 、Ceiling() 返回舍入后的得到整数。
二、Case表达式
1、简单Case
Case 表达式
when 值1 then 返回值1
when 值2 then 返回值2
else 返回值3
end as 别名
如:select case is_send
when 1 then '已发放'
when 0 then '未发放'
else '未知'
end 工资发放
from gongzi
2、布尔表达式
Case
when (bool表达式1) then 返回值1
when (bool表达式2) then 返回值2
else
end as 别名
如:select case
when is_send=1 then '已发放'
when is_send=0 then '未发放'
else '未知'
end 工资发放
from gongzi
注:其中的表达式可以是组合表达式,含有 and or not
三、使用空值
从技术上说,空值表示’未知的值’,实际上,空值可以表示还没有向 数据库中输入
相应数据或对于特定的记录行来说,该列不适用。
1、检测空值
when expression is null / is not null
注: null=null 返回false
1+null 返回null
对于规则‘将空值与非空值相加时,结果也为空值‘,一种例外是聚合函数累计包含
空值的列时
如:sum() ,avg() 等,通常忽略空值
2、处理空值
1、IsNull()
Isnull(Source_expression,Replacement_Value)
当Source_expression is null 时,返回Replacement_Value
或则返回Source_expression
如:
select id,bmid,zwid,truename,Isnull(tele,'暂无')
from yuangong
2、Coalesce()
Coalesce(Expression1,expression2,expression3....)
接受多个表达式或列作为参数,并返回第一个非空值
如:
select Coalesce(tele,id,bmid)
from yuangong
3、NullIf()
NullIf(e1,e2)
接受两个参数,如果它们相等时,则返回一个空值
如: select NullIf(id,bmid)
from yuangong
4、修改空值+非空值的返回结果
Set Concat_Null_Yields_Null OFF 影响相加时返回结果
Set Ansi_Nulls OFF 影响null=null返回结果