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:

  1. SELECT @@CURSOR_ROWS as a
  2. DECLARE student_cursor CURSOR FOR
  3. SELECT Sname FROM XS
  4. OPEN student_cursor
  5. FETCH NEXT FROM student_cursor
  6. SELECT @@CURSOR_ROWS as b
  7. select CURSOR_STATUS('global','student_cursor') as c
  8. CLOSE student_cursor
  9. DEALLOCATE student_cursor
  10. go

Result:

[3]@@FETCH_STATUS

Format:@@FETCH_STATUS

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

返回值

说明

0

FETCH   语句执行成功。

-1

FETCH 语句执行失败。

-2

被读取的记录不存在。

eg:

  1. 1 /*用 @@FETCH_STATUS 控制在一个 WHILE 循环中的游标活动。*/
  2. 2 use XSCJ
  3. 3 declare @name char(10),@st_id char(6)
  4. 4 declare student_cursor CURSOR
  5. 5 for select Sname,Sno from XSCJ.dbo.XS
  6. 6 open student_cursor
  7. 7 FETCH NEXT FROM student_cursor into @name,@st_id
  8. 8 select @name,@st_id
  9. 9 while @@FETCH_STATUS = 0
  10. 10 begin
  11. 11 fetch next from student_cursor into @name,@st_id
  12. 12 select @name,@st_id
  13. 13 end
  14. 14 close student_cursor
  15. 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. GUI开发者桌面搜索文件工具

    # - *- coding:utf-8-*-from Tkinter import *import tkMessageBoximport tkFileDialogimport osimport fnm ...

  2. ViewPager + Fragment实现滑动标签页

    http://blog.csdn.net/lizhenmingdirk/article/details/13631813; tab与frg的区别: http://www.cnblogs.com/tia ...

  3. Maven-3.2.2安装配置

    (1)安装JDK,这里是1.7.0_51 (2)Maven-3.2.2下载地址:http://mirrors.cnnic.cn/apache/maven/maven-3/3.2.2/binaries/ ...

  4. 自动获取socket链接状态

    C# TcpClient在连接成功后无法检测连接状态,即使对方关闭了网络连接.以下扩展可检测连接状态: static class TcpClientEx { public static bool Is ...

  5. ORACLE 分组之后容易被忽略的bug

    COL_2 COL_321       3123       31 如上表数据 前台显示显示需要把COL_2的21和23转换成中文 ‘整机’ 最开始如下编写 SELECT t.col_3, CASE ...

  6. Abstract Factory(抽象工厂)模式

    1.意图 提供一个创建一系列相关或相互依赖对象的接口,而无需制定它们具体的类. 2.适用性 一个系统要独立于它的产品创建.组合和表示时. 一个系统要由多个产品系列中的一个来配置时. 当你强调一系列相关 ...

  7. 使用引脚模拟PWM波控制引脚

    /********************************* 代码功能:输出PWM波控制引脚 使用函数: 创作时间:2016*10*07 作者邮箱:jikexianfeng@outlook.c ...

  8. SQL数据库完全复制

    很少摸 Windows 环境下的东西,最近被个 MS SQL Server 的数据库搞得头大.实在不像 MySQL 那样用起来轻车熟路, OrZ ... 本来以为企业管理器里面既然提供了 DTS 数据 ...

  9. div mouseenter 事件在IE下无效

    解决方法是在div style上加个背景色: background: rgba(0, 0, 0, 0);filter:alpha(opacity=0); background: rgba(0, 0, ...

  10. canvas 画六边形

    <section class="m1-c"> <div class="m1-t clearfix"> <ul> <li ...