zoukankan      html  css  js  c++  java
  • SqlServer——系统函数

    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
    View Code

    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
    View Code

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

    版权声明:本博文属于作者原创或从其他地方学习而来的博文,未经许可不得转载.

  • 相关阅读:
    CentOS 出错处理
    g13 root
    修复误删系统文件
    c++ list sort方法
    批量修改outlook联系人头像,并同步手机
    IT大牛们 学术搜索
    oracle 表空间操作
    CentOS 5.5 安装MPICH2\MRNet\Launchmon时遇到的问题
    自我反省
    积累航程
  • 原文地址:https://www.cnblogs.com/zi-xing/p/3763430.html
Copyright © 2011-2022 走看看