SQL SERVER其它函数
本篇文章还是学习《程序员的SQL金典》内容的记录,此次将讲解的是SQL SERVER常用的其它函数。 (其它数据库这里就不罗列了,想看更多的可以关注《程序员的SQL金典》)。
具体的其他函数包括:类型转换的函数、空值处理的函数、流程控制函数、SQL SERVER独有函数。 类型转换的函数 CAST ( expression AS data_type)函数 CONVERT ( data_type, expression)函数 上面两个函数都是SQL SERVER提供的支持类型转换的函数。参数expression为待进行类型转换的表达 式(即需要待转换的数据),而data_type为转换的目标类型(即待转换后的类型)。 SELECT 空值处理的函数 COALESCE ( expression,value1,value2……,valuen)函数:处理空值问题的函数,返 回包括expression在内的所有参数中的第一个非空表达式。其中expression为待检测的表达式,而其后 的参数个数不固定,可以多个。如果expression不为空值则返回expression;否则判断value1是否为空 ,如果不为空值则返回value1;否则判断value2是否为空,如果不为空值则返回value2; ……以此类推,如果COALESCE函数里的参数全为NULL就会出错了,因为COALESCE函数的功 能其实就是为了避免出现不想要的NULL值。 SELECT FName,FBirthDay,FRegDay, ISNULL(expression,value)函数:这个函数也是空值处理的函数,是COALESCE( )函数的简化版,只 支持两个参数。其中expression为待检测的表达式,如果expression不为空值则返回expression,否则 判断value是否为空,如果不为空值则返回value,如果都为空,则返回空。 SELECT FBirthDay,FRegDay, NULLIF ( expression1 , expression2 )函数:这个函数也是空值处理的函数,主要是判断两个表达 式是否等价,如果等价,则返回空,如果不等价,侧返回第一个expression1的值。需要注意的意,第一 个表达式expression1不能为空。 SELECT FBirthDay,FRegDay, 流程控制函数 SQL SERVER提供了流程控制函数,类似于我们代码里面的的SWITCH……CASE语句。那就 是CASE函数,这个函数有如下两种运用方法。 CASE函数的语法如下: 用法一: CASE expression WHEN value1 THEN returnvalue1 WHEN value2 THEN returnvalue2 WHEN value3 THEN returnvalue3 …… ELSE defaultreturnvalue END CASE函数对表达式expression进行测试,如果expression等于value1则返回returnvalue1,如果 expression等于value2则返回returnvalue2,expression等于value3则返回returnvalue3, ……以此类推,如果不符合所有的WHEN条件,则返回默认值defaultreturnvalue。 SELECT FName, (CASE FName WHEN 'Tom' THEN 'GoodBoy' WHEN 'Lily' THEN 'GoodGirl' WHEN 'Sam' THEN 'BadBoy' WHEN 'Kerry' THEN 'BadGirl' ELSE 'Normal' END) as isgood FROM T_Person 用法二: CASE WHEN condition1 THEN returnvalue1 WHEN condition 2 THEN returnvalue2 WHEN condition 3 THEN returnvalue3 …… ELSE defaultreturnvalue END 其中的condition1 、condition 2、condition 3……为条件表达式,CASE函数对各个 表达式从前向后进行测试,如果条件condition1为真则返回returnvalue1,否则如果条件condition2为 真则返回returnvalue2,否则如果条件condition3为真则返回returnvalue3,……以此类 推,如果不符合所有的WHEN条件,则返回默认值defaultreturnvalue。 SELECT FName, FWeight, (CASE WHEN FWeight<40 THEN 'thin' WHEN FWeight>50 THEN 'fat' ELSE 'ok' END) as isnormal FROM T_Person (编辑:徐州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |