SQL Server 函数参考手册(SQL Server 高级函数)

目录

SQL Server CAST() 函数

SQL Server COALESCE() 函数

SQL Server CONVERT() 函数

SQL Server CURRENT_USER 函数

SQL Server  IIF() 函数

SQL Server ISNULL() 函数

SQL Server ISNUMERIC() 函数

SQL Server NULLIF() 函数

SQL Server SESSION_USER 函数

SQL Server SESSIONPROPERTY() 函数

SQL Server SYSTEM_USER 函数

SQL Server USER_NAME() 函数


SQL Server CAST() 函数

【实例】

将值转换为 int 数据类型:

SELECT CAST(25.65 AS int);

【定义和用法】

CAST() 函数将(任何类型的)值转换为指定的数据类型。

注:同时查看 CONVERT() 函数。

【语法】

CAST(expression AS datatype(length))

【参数值】

参数描述
expression必需。要转换的值
datatype必需。要将 expression 转换为的数据类型。 可以是以下之一: bigint, int, smallint, tinyint, bit, decimal, numeric, money, smallmoney, float, real, datetime, smalldatetime, char, varchar, text, nchar, nvarchar, ntext, binary, varbinary, 或 image
(length)可选。结果数据类型的长度(对于 char、varchar、nchar、nvarchar、binary 和 varbinary)

【技术细节】

适用于:SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

【实例】

将值转换为 varchar 数据类型:

SELECT CAST(25.65 AS varchar);

【实例】

将值转换为DateTime数据类型:

SELECT CAST('2017-08-25' AS datetime);

SQL Server COALESCE() 函数

【实例】

返回列表中的第一个非空值:

SELECT COALESCE(NULL, NULL, NULL, 'W3Schools.cn', NULL, 'Example.com');

【定义和用法】

COALESCE() 函数返回列表中的第一个非空值。

【语法】

COALESCE(val1, val2, ...., val_n)

【参数值】

参数描述
val1, val2, val_n必需。要测试的值

【技术细节】

适用于:SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

【实例】

返回列表中的第一个非空值:

SELECT COALESCE(NULL, 1, 2, 'W3Schools.cn');

SQL Server CONVERT() 函数

【实例】

将表达式转换为 int:

SELECT CONVERT(int, 25.65);

【定义和用法】

convert()函数将值(任何类型)转换为指定的数据类型。

注: 查看 cast()功能。

【语法】

CONVERT(data_type(length), expression, style)

【参数值】

参数描述
data_type必需。 要将 expression 转换为的数据类型。 可以是以下之一: bigint, int, smallint, tinyint, bit, decimal, numeric, money,smallmoney, float, real, datetime, smalldatetime, char, varchar, text, nchar, nvarchar, ntext, binary, varbinary, 或 image
(length)可选。结果数据类型的长度(对于 char、varchar、nchar、nvarchar、binary 和 varbinary)
expression必需。转换为另一种数据类型的值
style可选。用于在数据类型之间进行转换的格式,例如日期或字符串格式。 可以是以下值之一:

将日期时间转换为字符:
Without centuryWith centuryInput/OutputStandard
0100mon dd yyyy hh:miAM/PMDefault
1101mm/dd/yyyyUS
2102 yyyy.mm.ddANSI
3103 dd/mm/yyyyBritish/French
4104dd.mm.yyyyGerman
5105 dd-mm-yyyyItalian
6106dd mon yyyy-
7107Mon dd, yyyy-
8108hh:mm:ss-
9109mon dd yyyy hh:mi:ss:mmmAM (or PM)Default + millisec
10110mm-dd-yyyyUSA
11111 yyyy/mm/ddJapan
12112 yyyymmddISO
13113dd mon yyyy hh:mi:ss:mmmEurope (24 hour clock)>
14114hh:mi:ss:mmm24 hour clock
20120yyyy-mm-dd hh:mi:ssODBC canonical (24 hour clock)
21121yyyy-mm-dd hh:mi:ss.mmmODBC canonical (24 hour clock)
126yyyy-mm-ddThh:mi:ss.mmmISO8601
127yyyy-mm-ddThh:mi:ss.mmmZISO8601 (with time zone Z)
130dd mon yyyy hh:mi:ss:mmmAMHijiri
131dd/mm/yy hh:mi:ss:mmmAMHijiri
将浮点数转换为实数:
解释
0最多6位(默认)
18位
216位
Converting money to character:
解释
0无逗号分隔符,小数点右侧 2 位
1逗号分隔符,小数点右侧 2 位
2无逗号分隔符,小数点右侧 4 位

【技术细节】

适用于:SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

【实例】

将表达式从一种数据类型转换为另一种数据类型(varchar):

SELECT CONVERT(varchar, 25.65);

【实例】

将表达式从一种数据类型转换为另一种 (datetime):

SELECT CONVERT(datetime, '2017-08-25');

【实例】

将表达式从一种数据类型转换为另一种 (varchar):

SELECT CONVERT(varchar, '2017-08-25', 101);

SQL Server CURRENT_USER 函数

【实例】

返回 SQL Server 数据库中当前用户的名称:

SELECT CURRENT_USER;

【定义和用法】

CURRENT_USER 函数返回 SQL Server 数据库中当前用户的名称。

【语法】

CURRENT_USER

【技术细节】

适用于:SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

SQL Server  IIF() 函数

【实例】

如果条件为 TRUE,则返回 quot;YES",如果条件为 FALSE,则返回 "NO":

SELECT IIF(500<1000, 'YES', 'NO');

【定义和用法】

如果条件为 TRUE,IIF() 函数返回一个值,如果条件为 FALSE,则返回另一个值。

【语法】

IIF(condition, value_if_true, value_if_false)

【参数值】

参数描述
condition必需。 要测试的值
value_if_true可选。condition为 TRUE 时返回的值
value_if_false可选。condition为 FALSE 时返回的值

【技术细节】

适用于:SQL Server (starting with 2012), Azure SQL Database

【实例】

如果条件为 TRUE,则返回 5,如果条件为 FALSE,则返回 10:

SELECT IIF(500<1000, 5, 10);

【实例】

测试两个字符串是否相同,返回"YES" 如果是,如果不是,则为 "YES":

SELECT IIF(STRCMP("hello","bye") = 0, 'YES', 'NO');

【实例】

如果条件为 TRUE,则返回 "MORE",如果条件为 FALSE,则返回 "LESS":

SELECT OrderID, Quantity, IIF(Quantity>10, 'MORE', 'LESS')
FROM OrderDetails;

SQL Server ISNULL() 函数

【实例】

如果表达式为NULL,则返回指定值,否则返回表达式:

SELECT ISNULL(NULL, 'W3Schools.cn');

【定义和用法】

如果表达式为 NULL,则 ISNULL() 函数返回指定值。

如果表达式不为空,则此函数返回表达式。

【语法】

ISNULL(expression, value)

【参数值】

参数描述
expression必需。判断是否为NULL的表达式
value必需。表达式为NULL时返回的值

【技术细节】

适用于:SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

【实例】

如果表达式为NULL,则返回指定值,否则返回表达式:

SELECT ISNULL('Hello', 'W3Schools.cn');

【实例】

如果表达式为NULL,则返回指定值,否则返回表达式:

SELECT ISNULL(NULL, 500);

SQL Server ISNUMERIC() 函数

【实例】

测试表达式是否为数字:

SELECT ISNUMERIC(4567);

【定义和用法】

ISNUMERIC() 函数测试表达式是否为数字。

如果表达式是数字,此函数返回 1,否则返回 0。

【语法】

ISNUMERIC(expression)

【参数值】

参数描述
expression必需。 要测试的值

【技术细节】

适用于:SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

【实例】

测试表达式是否为数字:

SELECT ISNUMERIC('4567');

【实例】

测试表达式是否为数字:

SELECT ISNUMERIC('Hello world!');

【实例】

测试表达式是否为数字:

SELECT ISNUMERIC(20*3);

【实例】

测试表达式是否为数字:

SELECT ISNUMERIC('2017-08-25');

SQL Server NULLIF() 函数

【实例】

比较两个表达式:

SELECT NULLIF(25, 25);

【定义和用法】

如果两个表达式相等,NULLIF() 函数返回 NULL,否则返回第一个表达式。

【语法】

NULLIF(expr1, expr2)

【参数值】

参数描述
expr1, expr2必需。要比较的两个表达式

【技术细节】

适用于:SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

【实例】

比较两个表达式:

SELECT NULLIF('Hello', 'Hello');

【实例】

比较两个表达式:

SELECT NULLIF('Hello', 'world');

【实例】

比较两个表达式:

SELECT NULLIF('2017-08-25', '2017-08-25');

SQL Server SESSION_USER 函数

【实例】

返回当前用户的用户名:

SELECT SESSION_USER;

【定义和用法】

SESSION_USER 函数返回 SQL Server 数据库中当前用户的名称。

【语法】

SESSION_USER

【技术细节】

适用于:SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

SQL Server SESSIONPROPERTY() 函数

【实例】

返回指定选项的会话设置:

SELECT SESSIONPROPERTY('ANSI_NULLS');

【定义和用法】

SESSIONPROPERTY() 函数返回指定选项的会话设置。

【语法】

SESSIONPROPERTY(option)

【参数值】

参数描述
option必需。检索会话设置的选项。 可以是以下值之一:
  • ANSI_NULLS
  • ANSI_PADDING
  • ANSI_WARNINGS
  • ARITHABORT
  • CONCAT_NULL_YIELDS_NULL
  • NUMERIC_ROUNDABOUT
  • QUOTED_IDENTIFIER

【技术细节】

适用于:SQL Server (starting with 2008), Azure SQL Database

SQL Server SYSTEM_USER 函数

【实例】

返回当前用户的登录名信息:

SELECT SYSTEM_USER;

【定义和用法】

SYSTEM_USER 函数返回当前用户的登录名。

【语法】

SYSTEM_USER

【技术细节】

适用于:SQL Server (starting with 2008), Azure SQL Data Warehouse, Parallel Data Warehouse

SQL Server USER_NAME() 函数

【实例】

返回数据库用户名(由于没有指定id,将返回当前用户):

SELECT USER_NAME();

【定义和用法】

USER_NAME()函数根据指定的id返回数据库用户名。

如果没有指定id,这个函数会返回当前用户的名字。

【语法】

USER_NAME(id_number)

【参数值】

参数描述
id_number可选。数据库中用户的id号

【技术细节】

适用于:SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

【实例】

返回id为1的数据库用户名:

SELECT USER_NAME(1);
  • 20
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值