目录
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() 函数
【实例】
将值转换为 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);
【实例】
返回列表中的第一个非空值:
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');
【实例】
将表达式转换为 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 | 可选。用于在数据类型之间进行转换的格式,例如日期或字符串格式。 可以是以下值之一: 将日期时间转换为字符:
|
【技术细节】
适用于: | 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 数据库中当前用户的名称:
SELECT CURRENT_USER;
【定义和用法】
CURRENT_USER 函数返回 SQL Server 数据库中当前用户的名称。
【语法】
CURRENT_USER
【技术细节】
适用于: | SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse |
---|
【实例】
如果条件为 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;
【实例】
如果表达式为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);
【实例】
测试表达式是否为数字:
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');
【实例】
比较两个表达式:
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');
【实例】
返回当前用户的用户名:
SELECT SESSION_USER;
【定义和用法】
SESSION_USER 函数返回 SQL Server 数据库中当前用户的名称。
【语法】
SESSION_USER
【技术细节】
适用于: | SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse |
---|
【实例】
返回指定选项的会话设置:
SELECT SESSIONPROPERTY('ANSI_NULLS');
【定义和用法】
SESSIONPROPERTY() 函数返回指定选项的会话设置。
【语法】
SESSIONPROPERTY(option)
【参数值】
参数 | 描述 |
---|---|
option | 必需。检索会话设置的选项。 可以是以下值之一:
|
【技术细节】
适用于: | SQL Server (starting with 2008), Azure SQL Database |
---|
【实例】
返回当前用户的登录名信息:
SELECT SYSTEM_USER;
【定义和用法】
SYSTEM_USER 函数返回当前用户的登录名。
【语法】
SYSTEM_USER
【技术细节】
适用于: | SQL Server (starting with 2008), Azure SQL Data Warehouse, Parallel Data Warehouse |
---|
【实例】
返回数据库用户名(由于没有指定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);