SQL——系统函数
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——系统函数的更多相关文章
- SQL系统函数的使用(实验五)
SQL系统函数的使用(试验5) 函数在查询语句中的使用 查询员工的姓名和日工资(保留1位小数): 查询并显示部门号为01和02的所有员工的姓名首字及岗位: 查询并显示所有员工的姓名及工龄: 查询199 ...
- ylb:SQL 系统函数
ylbtech-SQL Server: SQL Server-SQL 系统函数 SQL 系统函数 1,ylb:SQL 系统函数 返回顶部 -- ============================ ...
- SQL系统函数——系统信息
1.查看信息1.1.查看编号和名称select @@SERVERNAME--SQL SERVER服务器的连接字符串,如:computername\instancenameselect @@SERVIC ...
- sql 系统函数
--查看表备注SELECT a.column_id AS No, a.name AS 列名, isnull(g.[value],'-') AS 说明 FROM sys.columns a left j ...
- Sql Server函数全解(五)之系统函数
系统信息包括当前使用的数据库名称,主机名,系统错误消息以及用户名称等内容.使用SQL SERVER中的系统函数可以在需要的时候获取这些信息.下面介绍系统函数的作用和使用方法. 1.返回表中指定字段的 ...
- Sql Server函数全解<五>之系统函数
原文:Sql Server函数全解<五>之系统函数 系统信息包括当前使用的数据库名称,主机名,系统错误消息以及用户名称等内容.使用SQL SERVER中的系统函数可以在需要的时候获取这些 ...
- SQL Server 常用的系统函数
Ø 简介 本文主要列举 SQL Server 中常用的一些系统函数,帮助我们在编写 SQL 时忘了某个函数的用法方便查阅.主要分为以下几类函数,更多函数可参考官网. 1. 字符串函数 2. ...
- LINQ to SQL 调用 SQL Server 的系统函数
Ø 简介 在 C# 中比较常用的 ORM(Object Relational Mapping)框架就是 EF 了,EF 经常结合 LINQ to SQL 来操作数据库.本文主要讨论如何在 LINQ ...
- SQL Server系统函数简介[转]
一.字符转换函数1.ASCII()返回字符表达式最左端字符的ASCII 码值.在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错.2.CHAR ...
随机推荐
- Tcp之异常
Tcp异常 昨研发报异常,据CMCC说是我方服务器主动断开的,于是怀疑是超时设置过短,于是我抓包,由于我接触socket时日尚短,搞不清为什么三次握手成功之后我方服务器会立刻发送fin 今天本来做实验 ...
- 技术英文单词贴--G
G generator 发电机,发生器,生产者
- win7添加鼠标右键关联
背景: hfs升级把右键给升没了 搜索了下 都是如何删除的 但没有怎么添加 添加: 保存如下内容为.reg 然后双击导入即可 Windows Registry Editor Version 5.00 ...
- 【转】ASP.NET ViewState详解
(wyt今天学习了这篇文章,作为门外汉的我了解了很多页面控件数据加载的知识和viewstate的用法和原理.我想在日后的开发效率提升上会有很大的作用.) 转自http://www.cnblogs.co ...
- IOS开发涉及有点概念&相关知识点
前言,IOS是基于UNIX的,用C/C+/OC直通系统底层,不想android有个jvm. 首先还是系统架构的分层架构 1.核心操作系统层 Core OS,就是内存管理.文件系统.电源管理等 2.核心 ...
- Rsync+inotify实现实时同步
1.1 inotify介绍 inotify是一种强大的.细粒度的.异步的文件系统事件控制机制.linux内核从2.6.13起,加入了inotify支持,通过inotify可以监控文件系统中添加.删除. ...
- Oracle中Lpad函数和Rpad函数的用法
http://blog.csdn.net/woshixuye/article/details/17262307 一.Lpad函数 lpad函数将左边的字符串填充一些特定的字符其语法格式如下:lpad ...
- 深入浅出Symfony2 - 如何提高网站响应速度 [转]
简介 Symfony2是一个基于PHP语言的Web开发框架,有着开发速度快.性能高等特点.但Symfony2的学习曲线也比较陡峭,没有经验的初学者往往需要一些练习才能掌握其特性.相对其他框架,Symf ...
- Hibernate之创建命名策略
在开发软件时,通常会要求每个开发人员遵守共同的命名策略.例如,数据库的表名及字段名的所有字符都要大写,表名以“S”结尾.对于Customer类,对应的数据库表名为CUSTOMERS.为了在映射文件中遵 ...
- 批量导入Excel存在的问题及解决方案
许多传统的做法,导入excel就是将excel上传到服务器的某个文件夹里如upload,之后再次读取,导入系统.这边就存在一些问题: 1.服务器需要安装Office,用于读取Excel文件. 2.系统 ...