【长期更新】SQL Server 常用函数
REPLACE()函数
语法:
replace(original-string,search-string,replace-string)
original-string: 被搜索的字符串,可为任意长度。
search-string: 要搜索并被 replace-string 替换的字符串,该字符串的长度不应超过 255 个字节。
如果 search-string 是空字符串,则按原样返回原始字符串。
replace-string: 该字符串用于替换 search-string,可为任意长度。
如果 replace-string 是空字符串,则删除出现的所有 search-string。
用途:
在SQL Server SSRS报表中将文本字符按需求换行显示
<<expr>>=First(REPLACE(Fields!InspectLines.Value, chr(13), VbCrLf)) + VbCrLf
效果如下图所示:
SUM()函数
语法:
SUM([ALL | DISTINCT ] expression)
在这个语法中:
ALL指示SUM()函数返回包括重复项在内的所有值的总和。
默认情况下使用ALL。
DISTINCT指示SUM()函数计算唯一不同值的总和。
expression是返回精确或近似数值的任何有效表达式。
请注意,表达式中不接受聚合函数或子查询。
SUM()函数忽略NULL值。
(SUM ( CASE JobMtl.PartNum WHEN JobMtl.PartNum THEN PartWhse.OnHandQty ELSE PartWhse.OnHandQty END )) as [Calculated_OnHandQtys]
===>
(SUM ( CASE WHEN JobMtl.PartNum = JobMtl.PartNum THEN PartWhse.OnHandQty ELSE PartWhse.OnHandQty END )) as [Calculated_OnHandQtys]
条件匹配是则输出THEN后面的值,否则输出ELSE后面的值。
THEN和ELSE的数据类型需要相同,否则会报错。
Tips:
使用该表达式,配合Group By可以将多条数据聚合成一条数据。
CAST()函数
转载自:https://blog.csdn.net/qq_27918787/article/details/52593698
语法:
CAST (expression AS data_type)
参数说明:
expression:任何有效的SQServer表达式。
AS:用于分隔两个参数,在AS之前的是要处理的数据,在AS之后是要转换的数据类型。
data_type:目标系统所提供的数据类型,包括bigint和sql_variant,不能使用用户定义的数据类型。
注意事项:
(1).CAST()函数的参数是一个表达式,它包括用AS关键字分隔的源值和目标数据类型。以下例子用于将文本字符串'12'转换为整型:
SELECT CAST('12' AS int)
(2).返回值是整型值12。如果试图将一个代表小数的字符串转换为整型值,又会出现什么情况呢?
SELECT CAST('12.5' AS int)
(3).CAST()函数和CONVERT()函数都不能执行四舍五入或截断操作。由于12.5不能用int数据类型来表示,所以对这个函数调用将产生一个错误:
Server: Msg 245, Level 16, State 1, Line 1
Syntax error converting the varchar value
'12.5' to a column of data type int.
(4).要返回一个合法的数值,就必须使用能处理这个值的数据类型。对于这个例子,存在多个可用的数据类型。
如果通过CAST()函数将这个值转换为decimal类型,需要首先定义decimal值的精度与小数位数。
在本例中,精度与小数位数分别为9 与2。精度是总的数字位数,包括小数点左边和右边位数的总和。而小数位数是小数点右边的位数。
这表示本例能够支持的最大的整数值是9999999,而最小的小数是0.01。
SELECT CAST('12.5' AS decimal(9,2))
decimal数据类型在结果网格中将显示有效小数位: 12.50
(5).精度和小数位数的默认值分别是18与0。如果在decimal类型中不提供这两个值,SQL Server将截断数字的小数部分,而不会产生错误。
SELECT CAST('12.5' AS decimal)
结果是一个整数值:12
Right()函数
语法:
RIGHT ( input_string , number_of_characters )
作用:
从给定字符串的右侧提取多个指定数量的字符
举例:
RIGHT('SQL Server',6)
-- return 'Server'
Concat()函数
语法:
CONCAT ( input_string1, input_string2 [, input_stringN ] );
作用:
将多个字符串连接成一个字符串,仅SQLServer 2012及更高版本支持。
举例:
SELECT CONCAT('VAT',RIGHT(t.TAX,2),'%') FROM TABLE_1;
-- return 'VAT13%'
ISNULL()函数
-- 当数字和 NULL 相加时,结果会是 NULL。如果需要使该表达式的结果不为 NULL,则必须使用 ISNULL 函数或 COALESCE 函数将 NULL 值替换为 0 或其他值。
语法:
ISNULL(expression, value)
作用:
如果指定的表达式为NULL,则返回给定的值;如果指定的表达式不为NULL,则返回指定的表达式。
举例:
SELECT ISNULL(1,0)
-- RETURN 1
SELECT ISNULL(NULL,0)
-- RETURN 0
DATEADD()函数
SELECT DATEADD(second, 53571, '1970-01-01T00:00:00')
// 可以将数据库中的时间转换为正常的时间显示
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
咸鱼说!
喜欢就支持一下吧
打赏
微信
支付宝