T-SQL函数类型——系统函数

1 ??? 为什么 123 和'123'的ISNUMERIC()返回结果相同。

SELECT ISNUMERIC(123)  --结果为1
SELECT ISNUMERIC('123') --结果为1
SELECT ISNUMERIC('a') --结果为0

1、CAST(a as type[(length)]),将表达式a转换指定的数据类型type,如果转换失败将报ERROR。

例:SELECT CAST('123' as int);  结果为123

2、COALESCE(a1,a2,…),返回给定清单上的表达式a1,a2…,第一个不为NULL的表达式值。

例:SELECT COALESCE('a1','a2'); 结果为’a1’

    SELECT COALESCE(NULL,'a2'); 结果为’a2’

3、COL_LENGTH(obj,col),返回col列的长度,该长度值属于数据库对象(表或视图)obj。

例:SELECT COL_LENGTH('customers','cust_ID');结果为10

4、CONVER(type[(length)],a),和CAST相等,但是对这两个参数指定条件不同。COVERT能用于任何数据类型。

例:SELECT CONVERT(int,'123'),结果为123

5、CURRENT_TIMESTAMP,返回目前的日期和时间。

例:SELECT CURRENT_TIMESTAMP,结果为2010-05-19 17:25:39.437

6、CURRENE_USER,返回目前用户的姓名。

例:SELECT CURRENT_USER; 结果为’dbo’

7、 DATALENGTH(expr),计算表达式expr的结果长度(字节)。

例:SELECT DATALENGTH(ProductName) from products; 结果返回每条记录对应ProductName的数据长度。

8、GETANSINULL(dbname),如果按照ANSI SQL标准在数据库dbname中使用NULL值,那么返回值为1

例:SELECT GETANSINULL('TEST'); 结果为1

9、ISNULL(expr,value),如果表达式expr不为0,就返回expr值;否则返回value。

例:SELECT ISNULL('a','b');  结果为’a’

    SELECT ISNULL(NULL,'b'); 结果为’b’

10、ISNUMERIC(expr),判断表达式是否属于有效的数字型。如果是有效数字型返回1,否则返回0

例:SELECT ISNUMERIC(123); 结果为1

    SELECT ISNUMERIC('a'); 结果为0

11、NEWID(),创建有16个字节组成的二进制字符串存储UNIQUEINENTIFIER数据类型。

12、NEWSEQUENTALID(),在指定的计算机上创建GUID,它比该函数之前产生的GUID值要大。可以利用该函数设置字段的默认值。

13、NULLIF(expr1,exprs),如果表达式expr1和expr2相等,返回NULL值。否则返回expr1值。

例:SELECT NULLIF('a','a'); 结果为NULL

    SELECT NULLIF('a','b'); 结果为’a’

14、SERVERPROPERTY(propertyname),返回数据库服务器的属性信息。

propertyname的值如下:

属性

返回值

BuildVersion

生成 SQL Server 实例时使用的 .NET Framework 公共语言运行时 (CLR) 的版本.

Collation

服务器的默认排序规则名称。

CollationID

SQL Server 排序规则的 ID。

ComparisonSytle

排序规则的 Windows 比较样式。

ComputerNamePhysicalNetBIOS

前运行 SQL Server 实例的本地计算机的 NetBIOS 名称。

Edition

所安装的 SQL Server 实例的产品版本。

EditionID

标识号,表示已安装的 SQL Server 实例的产品版本

EngineEdition 

服务器上安装的 SQL Server 实例的数据库引擎版本。

InstanceName

用户连接到的实例的名称。

IsClustered 

在故障转移群集中配置服务器实例。

IsFullTextInstalled

在 SQL Server 的当前实例中安装全文组件。

IsIntegratedSecurityOnly

服务器处于集成安全性模式下。

IsSingleUser

服务器处于单用户模式下。

LCID

排序规则的 Windows 区域设置标识符 (LCID)。

LicenseType

此 SQL Server 实例的模式。

MachineName

运行服务器实例的 Windows 计算机名称。

NumLicenses

如果处于每客户模式下,则为该 SQL Server 实例的注册客户端许可数。

如果处于每处理器模式下,则为该 SQL Server 实例的许可处理器数。

如果服务器不是上述模式,则返回 NULL。

ProcessID

SQL Server 服务的进程 ID。

ProductVersion

SQL Server 实例的版本

ProductLevel

SQL Server 实例的版本级别。

ResourceLastUpdateDateTime

返回资源数据库上次更新的日期和时间。

ResourceVersion

返回版本资源数据库。

ServerName

Windows 服务器和与指定的 SQL Server 实例关联的实例信息。

SqlCharSet

排序规则 ID 中的 SQL 字符集 ID。

SqlCharSetName

排序规则中的 SQL 字符集名称。

SqlSortOrder

排序规则中的 SQL 排序顺序 ID

SqlSortOrderName

排序规则中的 SQL 排序顺序名称。

FilestreamShareName

FILESTREAM 使用的共享的名称。

FilestreamConfiguredLevel

FILESTREAM 访问的配置级别

FilestreamEffectiveLevel

FILESTREAM 访问的有效级别

例:SELECT SERVERPROPERTY('BuildClrVersion'); 结果为’ v2.0.50727’

15、SYSTEM_USER,返回目前用户的登录ID

例:SELECT SYSTEM_USER; 结果为当前用户名

16、USER_ID([user_name]),返回用户user_name的标识符,如果没有指定user_name,就返回当前用户的标识符。

例:SELECT USER_ID('guest'); 结果为2

17、USER_NAME([id]),返回带有标识符id的用户名字;如果没有指定用户名,就检索当前用户的名字。

例:SELECT USER_NAME(2); 结果为’guest’

原文地址:https://www.cnblogs.com/yachao1120/p/6746904.html