1) CASE

CASE有两种使用形式:一种是简单的CASE函数,另一种是搜索型的CASE函数。

[1]简单的 CASE 函数

Format:

CASE input_expression

WHEN when_expression THEN result_expression

[ ...n ]

[ ELSE else_result_expression  ]

END

Attention: 参数input_expression和when_expression的数据类型必须相同,或者可隐形转换。

eg1:

[2]CASE 搜索函数:

Function: 按指定的顺序为每个WHEN子句的Boolean_expression表达式求值,返回第一个取值为TRUE的Boolean_expression表达式所对应的result_expression表达式之值;如果没有取值为TRUE Boolean_expression表达式,则当指定else子句时,返回else_result_expression之值,若没有指定else子句时,则返回null.

Format:

CASE

WHEN Boolean_expression THEN result_expression

[ ...n ]

[ ELSE else_result_expression]

END

eg1:

2) CAST 和 CONVERT

常用的类型转换有以下几种情况:

日期型->字符型:如将 datetime 或 smalldatetime 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型)。

字符型->日期型:如将字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型)转换为datetime 或 smalldatetime 数据。

数值型->字符型:如将 float、real、money 或 smallmoney 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型)。

Format:

CAST ( expression AS data_type )

CONVERT (data_type[(length)], expression [style])

Attention: data_type不能为用户定义的数据类型。Style的常用取值及其作用如下表所示:

日期型与字符型转换时style的常用取值及其作用

Style取值

不带世纪数位

Style取值

带世纪数位

标准

输入/输出

0 或   100

默认值

mon dd yyyy hh:miAM

(或 PM)

1

101

美国

mm/dd/yyyy

2

102

ANSI

yy.mm.dd

9 或   109

默认值   +   毫秒

mon dd yyyy hh:mi:ss:mmmAM(或 PM)

10

110

美国

mm-dd-yy

12

112

ISO

yymmdd

eg:

float 或 real转换为字符数据时style的取值

style值

输出

0(默认值)

根据需要使用科学记数法,长度最多为   6。

1

使用科学记数法,长度为8。

2

使用科学记数法,长度为16。

eg:

从 money 或 smallmoney转换为字符数据时style的取值

输出

0(默认值)

小数点左侧每三位数字之间不以逗号分隔,小数点右侧取两位数,例如   4236.98。

1

小数点左侧每三位数字之间以逗号分隔,小数点右侧取两位数,例如   3,610.92。

2

小数点左侧每三位数字之间不以逗号分隔,小数点右侧取四位数,例如   4236.9819。

eg:

eg:如下程序将检索总学分40~49分的学生姓名,并将总学分转换为 char(20)。

如下例子分别使用 CAST 和 CONVERT

3) COALESCE

Function:返回参数表达式中第一个非空表达式的值,如果所有自变量均为null,则COALESCE 返回null。

Format:COALESCE ( expression[ ...n ] )

eg1:

eg2:

6) 日期时间函数

日期函数可用在 SELECT 语句的选择列表或用在查询的 WHERE 子句中,在此介绍一下GETDATE ( )函数。

Function:返回当前的日期和时间。返回值类型:datetime

Format:GETDATE ( )

eg:

7)游标函数

游标函数用于返回有关游标的信息。主要有如下游标函数:

Function:返回最后打开的游标中当前存在的满足条件的行数。返回值类型为:integer

Format:@@CURSOR_ROWS

eg:

如下的示例声明了一个游标,并用 SELECT 显示 @@CURSOR_ROWS 的值。

[2]CURSOR_STATUS

Function:返回游标状态值,是打开还是关闭

Format:

CURSOR_STATUS

(  { 'local' , 'cursor_name' }    /*指明数据源为本地游标*/

| { 'global' , 'cursor_name' }          /*指明数据源为全局游标*/

| { 'variable' , 'cursor_variable' }          /*指明数据源为游标变量*/

)

CURSOR_STATUS()函数返回值如下表所示:

返回值

游标名或游标变量

1

游标的结果集至少有一行。

0

游标的结果集为空。*

-1

游标被关闭。

-2

游标不可用。

-3

指定的游标不存在。

eg:

 SELECT @@CURSOR_ROWS as a
DECLARE student_cursor CURSOR FOR
SELECT Sname FROM XS
OPEN student_cursor
FETCH NEXT FROM student_cursor
SELECT @@CURSOR_ROWS as b
select CURSOR_STATUS('global','student_cursor') as c
CLOSE student_cursor
DEALLOCATE student_cursor
go

Result:

[3]@@FETCH_STATUS

Format:@@FETCH_STATUS

Function:返回 FETCH 语句执行后游标的状态。返回值类型:integer,@@FETCH_STATUS返回值如下表所示。

返回值

说明

0

FETCH   语句执行成功。

-1

FETCH 语句执行失败。

-2

被读取的记录不存在。

eg:

  1 /*用 @@FETCH_STATUS 控制在一个 WHILE 循环中的游标活动。*/
2 use XSCJ
3 declare @name char(10),@st_id char(6)
4 declare student_cursor CURSOR
5 for select Sname,Sno from XSCJ.dbo.XS
6 open student_cursor
7 FETCH NEXT FROM student_cursor into @name,@st_id
8 select @name,@st_id
9 while @@FETCH_STATUS = 0
10 begin
11 fetch next from student_cursor into @name,@st_id
12 select @name,@st_id
13 end
14 close student_cursor
15 deallocate student_cursor

Result:

             

[4]元数据函数

元数据是用于描述数据库和数据库对象的。元数据函数用于返回有关数据库和数据库对象的信息。

1) DB_ID

Format:DB_ID ( [ 'database_name' ] )

Function:系统创建数据库时,自动为其创建一个标识号,函数DB_ID根据database_name指定的数据库名,返回其数据库标识号(ID),如果参数database_name不指定,则返回当前数据库ID,返回值类型为smallint.

2) DB_NAME函数

Format:DB_NAME(database_id)

Function:返回其数据库名字(name)。

SQL——系统函数的更多相关文章

  1. SQL系统函数的使用(实验五)

    SQL系统函数的使用(试验5) 函数在查询语句中的使用 查询员工的姓名和日工资(保留1位小数): 查询并显示部门号为01和02的所有员工的姓名首字及岗位: 查询并显示所有员工的姓名及工龄: 查询199 ...

  2. ylb:SQL 系统函数

    ylbtech-SQL Server: SQL Server-SQL 系统函数 SQL 系统函数 1,ylb:SQL 系统函数 返回顶部 -- ============================ ...

  3. SQL系统函数——系统信息

    1.查看信息1.1.查看编号和名称select @@SERVERNAME--SQL SERVER服务器的连接字符串,如:computername\instancenameselect @@SERVIC ...

  4. sql 系统函数

    --查看表备注SELECT a.column_id AS No, a.name AS 列名, isnull(g.[value],'-') AS 说明 FROM sys.columns a left j ...

  5. Sql Server函数全解(五)之系统函数

     系统信息包括当前使用的数据库名称,主机名,系统错误消息以及用户名称等内容.使用SQL SERVER中的系统函数可以在需要的时候获取这些信息.下面介绍系统函数的作用和使用方法. 1.返回表中指定字段的 ...

  6. Sql Server函数全解<五>之系统函数

    原文:Sql Server函数全解<五>之系统函数  系统信息包括当前使用的数据库名称,主机名,系统错误消息以及用户名称等内容.使用SQL SERVER中的系统函数可以在需要的时候获取这些 ...

  7. SQL Server 常用的系统函数

    Ø  简介 本文主要列举 SQL Server 中常用的一些系统函数,帮助我们在编写 SQL 时忘了某个函数的用法方便查阅.主要分为以下几类函数,更多函数可参考官网. 1.   字符串函数 2.   ...

  8. LINQ to SQL 调用 SQL Server 的系统函数

    Ø  简介 在 C# 中比较常用的 ORM(Object Relational Mapping)框架就是 EF 了,EF 经常结合 LINQ to SQL 来操作数据库.本文主要讨论如何在 LINQ ...

  9. SQL Server系统函数简介[转]

    一.字符转换函数1.ASCII()返回字符表达式最左端字符的ASCII 码值.在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错.2.CHAR ...

随机推荐

  1. Javaweb自定义标签

    项目中用到自定义的标签文件,但是却在web.xml中没有看到相关的标签配置,原来如果web应用使用servelet2.4以上的版本就不需要在web.xml中定义了,servelet会自动加载tld文件 ...

  2. 为Elasticsearch添加中文分词,对比分词器效果

    http://keenwon.com/1404.html Elasticsearch中,内置了很多分词器(analyzers),例如standard (标准分词器).english(英文分词)和chi ...

  3. hdu 1757 A Simple Math Problem (乘法矩阵)

    A Simple Math Problem Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  4. Python全栈之路---运算符与基本的数据结构

    运算符 一.算术运算符: 练习: + 加法 两个对象相加 1 + 2得到3:'a' + 'b'得到'ab'. - 减法 一个数减去另一个数或者是负数 5 - 3得到2:-2得到一个负数 * 乘法 两个 ...

  5. UVA 753 A Plug for UNIX(二分图匹配)

    A Plug for UNIX You are in charge of setting up the press room for the inaugural meeting of the Unit ...

  6. POJ 2699 The Maximum Number of Strong Kings Description

    The Maximum Number of Strong Kings   Description A tournament can be represented by a complete graph ...

  7. linux中时间的更改

    # tzselectPlease identify a location so that time zone rules can be set correctly.Please select a co ...

  8. java 图示

    java类继承关系 java流类图结构

  9. CSS定位之position详解(转载)

    本文转载于xingoo的博文:http://www.cnblogs.com/xing901022/p/5193751.html  position属性 在前端中,position是很常见的属性.通过这 ...

  10. 「2013-9-5」Configure WingIDE for better display of East Asian Glyphs

    很久没写软件配置相关的博客了.这次对于 WingIDE 在 Windows 下的字体配置,折腾了好一阵子,略曲折,也反映了「不清楚原理和背景的情况下,盲人摸象的效率低下是必然」这条放之四海而皆准的赤果 ...