SQL server 基本函数(一)

1. isnull()函数

作用:使用指定的替换值替换 NULL

语法:isnull(check_expression,replacement_value)

参数:check_expression可以是任何类型的。

rereplacement_value在 check_expression为 NULL时将返回的表达式。replacement_value必须与 check_expression具有相同的类型。

返回类型

返回与 check_expression 相同的类型。

注释

如果 check_expression 不为 NULL,那么返回该表达式的值;否则返回 replacement_value。

例:将 table表中的所有书的书名、类型及价格显示出来。如果一个书名的价格是 NULL,那么在结果集中显示的价格为 0.00。

select bookname,type,isnull(price,0.00) as Price

from table

2. Datediff()函数

作用:返回两个日期之间的天数。

语法:Datediff(datepart,startdate,enddate)

参数:datepart 表示相隔时间的类型 (如:yy,mm,dd,week,hh……)

startdate,enddate 为合法的日期表达式

返回值:返回值与datepart相对应。

例: (1)返回当天的记录

select * from table where datediff(dd,datetime,getdate())=0 // datetime 为表结构中的列名,类型为时间类型。

(2) 返回一个周的记录

select * from table where datediff(week,datetime,getdate())=0

3. convert()函数

将某种数据类型的表达式显式转换为另一种数据类型。

语法:convert(type, expression)  || convert(type, expression,format)

参数 : type 表达式将转换成的数据类型。

expression 要转换的表达式。

format对于将字符串转换为日期或时间数据类型以及相反的转换过程,format是描述要使用的日期格式字符串的样式代码。

返回类型:

返回和type相同的类型。

例:(1)select * from table where id=Convert(varchar(2),substring("abcdefgh",1,2))

(2) select convert(varchar(10),datetime,21) from table // datetime 为表结构中的列名,类型为时间类型。21为yy-mm-dd格式所对应的值

4. substring()函数

返回字符、二进制、文本或图像表达式的一部分

语法:Substring ( expression, start, length )

参数:

expression 字符串、二进制字符串、文本。

start 指定子字符串的开始位置。

length 指定子字符串的长度,如果为空,则直到串的尾部。

返回类型: 与expression类型相同。

例:返回table表中name属性列中所有字符串的首字母

select substring(name,1,1) as 首字母 from table

5. set ANSI_NULLS ON 和 set QUOTED_IDENTIFIER ON
当 SET QUOTED_IDENTIFIER 为 ON 时,标识符可以由双引号分隔,而文字必须由单引号分隔。当 SET QUOTED_IDENTIFIER 为 OFF 时,标识符不可加引号,且必须符合所有 Transact-SQL 标识符规则。 SQL-92 标准要求在对空值进行等于 (=) 或不等于 (<>) 比较时取值为 FALSE。

当 SET ANSI_NULLS 为 ON 时,即使 column_name 中包含空值,使用 WHERE column_name = NULL 的 SELECT 语句仍返回零行。即使 column_name 中包含非空值,使用 WHERE column_name <> NULL 的 SELECT 语句仍会返回零行。

当 SET ANSI_NULLS 为 OFF 时,等于 (=) 和不等于 (<>) 比较运算符不遵从 SQL-92 标准。使用 WHERE column_name = NULL 的 SELECT 语句返回 column_name 中包含空值的行。使用 WHERE column_name <> NULL 的 SELECT 语句返回列中包含非空值的行。此外,使用 WHERE column_name <> XYZ_value 的 SELECT 语句返回所有不为 XYZ_value 也不为 NULL 的行。

原文地址:https://www.cnblogs.com/akwwl/p/2635619.html