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)。

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

  1. MSSQL sqlserver系统函数教程分享

    摘要: 下文收集了sqlserver函数教程,为每一个函数都进行了相关举例说明, 如下所示: sqlserver聚合函数教程: mssql sqlserver avg聚合函数使用简介 mssql sq ...

  2. SQLServer系统函数之字符串函数

    一.字符串函数 参数character_expression:由字符数据组成的字母数字表达式,可以是常量或变量,也可以是字符列或二进制数据列 参数integer_expression:是正整数,如果 ...

  3. 第三章——使用系统函数、存储过程和DBCC SQLPERF命令来监控SQLServer(3)

    原文:第三章--使用系统函数.存储过程和DBCC SQLPERF命令来监控SQLServer(3) 本文为这个系列最后一篇.将是如何使用DBCC命令来监控SQLServer日志空间的使用情况. 前言: ...

  4. ylb:SQLServer常用系统函数-字符串函数、配置函数、系统统计函数

    原文:ylb:SQLServer常用系统函数-字符串函数.配置函数.系统统计函数 ylbtech-SQL Server:SQL Server-SQLServer常用系统函数 -- ========== ...

  5. sqlserver自定义函数的创建与调用

    sqlserver中有系统提供的函数,像avg.sum.getdate()等,用户还可以自定义函数. 用户自定义的函数包括:标量函数和表值函数,其中标量函数和系统函数的用法一样,表值函数根据主体的定义 ...

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

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

  7. 信安周报-第04周:系统函数与UDF

    信安之路 第04周 前言 这周自主研究的任务如下: 附录解释: SQLi的时候应对各种限制,可以使用数据库自带的系统函数来进行一系列变换绕过验证 eg:字符串转换函数.截取字符串长度函数等 注入的时候 ...

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

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

  9. Verilog学习笔记基本语法篇(十一)········ 常用系统函数

    1)系统任务:$monitor   格式: $monitor(p1,p2,p3...pn); $monitor; $monitoron; $monitoroff; 任务$monitor提供了监控输出列 ...

随机推荐

  1. Java列表分页查询结果导出到CSV文件,导入CSV文件并解析

    import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...

  2. Unit08: Spring集成mybatis

    Unit08: Spring集成mybatis 1. Spring集成mybatis (1)方式一 step1. 导包. spring-webmvc,mybatis,mybatis-spring, o ...

  3. Socket客户端

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...

  4. android 文件上传,中文utf-8编码

    要上传文件到后台的php服务器,服务器能收到中文,手机发送过去,却只能收到一堆转了UTF-8的编码(就是要decode后才是中文的编码).android这边上传文件通常是用stream方式上传的,用M ...

  5. Hive语句执行优化-简化UDF执行过程

      Hive会将执行的SQL语句翻译成对应MapReduce任务,当SQL语句比较简单时,性能还是可能处于可接受的范围.但是如果涉及到非常复杂的业务逻辑,特别是通过程序的方式(一些模版语言生成)生成大 ...

  6. Joker的自动化之路

    系统篇     颜色 黄绿+金色 使用mac系统常用工具(包含svn,vim,crt,redis,php5,网络性能命令) 计算机硬件         linux发展史            cent ...

  7. Oracle关于date类型数据的总结

    往Oracle数据库中插入日期型数据(to_date的用法) INSERT  INTO  FLOOR  VALUES  ( to_date ( '2007-12-20 18:31:34' , 'YYY ...

  8. VMware 虚拟机中添加新硬盘的方法(转载)

    随着在虚拟机中存储的东西的逐渐的增加,虚拟机的硬盘也逐渐告急,因此急需拓展一块新的虚拟磁盘.以下便是在VMware 中添加新的虚拟磁盘的方法:   一.VMware新增磁盘的设置步骤 (建议:在设置虚 ...

  9. letter

    while (cin.eof() != true) //cin.eof判断是否到达文件EOF,如果读取到EOF return true,读取到EOF则无法再次输入 while (cin.fail() ...

  10. Normalize.css与Reset CSS:定义浏览器统一的默认样式

    今天在chrome上测试我的网页,发现一个<p>段落多出了一些margin,而我自己没有设定.打开f12调试,发现在一个“user agent style”栏下定义了这个margin,去g ...