zoukankan      html  css  js  c++  java
  • 常用Function

    常用Function

    ==================================================

    1,Datalength(string)--返回用於表示任何表達式的字節數

    -------------------------

    2,Case Function

     

    select Category=

    Case type

       when 'a' then 'aaaaaa'

       when 'b' then 'bbbbbb'

       else 'Not yet'

    end,

    [time]

    from table

    -------------------------

    3,cast / convert

    将某种数据类型的表达式显式转换为另一种数据类型。CAST 和 CONVERT 提供相似的功能。

    語法

    使用cast

    CAST ( expression AS data_type )

    使用convert

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

     

    a,SELECT CAST(ROUND(ytd_sales/price, 0) AS int) AS 'Copies'

    上面的例子是換成int型

     

    b,同时使用 CAST 和 CONVERT

    每个示例都将检索书名(这些图书的截止当前销售额的第一位数字为 3),并将这些图书的 ytd_sales

    转换为 char(20)。

     

    -- Use CAST.

    USE pubs

    GO

    SELECT SUBSTRING(title, 1, 30) AS Title, ytd_sales

    FROM titles

    WHERE CAST(ytd_sales AS char(20)) LIKE '3%'

    GO

     

    -- Use CONVERT.

    USE pubs

    GO

    SELECT SUBSTRING(title, 1, 30) AS Title, ytd_sales

    FROM titles

    WHERE CONVERT(char(20), ytd_sales) LIKE '3%'

    GO

    4,coalesce

    返回其參數中第一個非空表達式.

    例子:

    在下面的示例中,显示包含三列有关某个雇员每年工资收入信息的 wages 表:hourly_wage、salary 和 commission。但是,每个雇员只能接受一种付款方式。若要确定支付给所有雇员的工资总额,请使用 COALESCE 函数接受在 hourly_wage、salary 和 commission 中找到的非空值。

    SET NOCOUNT ON

    GO

    USE master

    IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES

          WHERE TABLE_NAME = 'wages')

       DROP TABLE wages

    GO

    CREATE TABLE wages

    (

       emp_id      tinyint    identity,

       hourly_wage   decimal   NULL,

       salary      decimal    NULL,

       commission   decimal   NULL,

       num_sales   tinyint   NULL

    )

    GO

    INSERT wages VALUES(10.00, NULL, NULL, NULL)

    INSERT wages VALUES(20.00, NULL, NULL, NULL)

    INSERT wages VALUES(30.00, NULL, NULL, NULL)

    INSERT wages VALUES(40.00, NULL, NULL, NULL)

    INSERT wages VALUES(NULL, 10000.00, NULL, NULL)

    INSERT wages VALUES(NULL, 20000.00, NULL, NULL)

    INSERT wages VALUES(NULL, 30000.00, NULL, NULL)

    INSERT wages VALUES(NULL, 40000.00, NULL, NULL)

    INSERT wages VALUES(NULL, NULL, 15000, 3)

    INSERT wages VALUES(NULL, NULL, 25000, 2)

    INSERT wages VALUES(NULL, NULL, 20000, 6)

    INSERT wages VALUES(NULL, NULL, 14000, 4)

    GO

    SET NOCOUNT OFF

    GO

    SELECT CAST(COALESCE(hourly_wage * 40 * 52,

       salary,

       commission * num_sales) AS money) AS 'Total Salary'

    FROM wages

    GO

    下面是结果集:

     

    Total Salary

    ------------

    20800.0000

    41600.0000

    62400.0000

    83200.0000

    10000.0000

    20000.0000

    30000.0000

    40000.0000

    45000.0000

    50000.0000

    120000.0000

    56000.0000

     

    5,current_timestamp等價於getdate()

    返回當前的日期和時間.

    6,@@identity

    返回最後插入的標識值

    7,identity function

    產生標識值,在在主鍵時常用到.

    8,isdate

    確定輸入表達式是否為有效的日期.

    A. 使用 ISDATE 检查变量

    下面的示例检查 @datestring 局部变量是否为有效的日期。

    DECLARE @datestring varchar(8)

    SET @datestring = '12/21/98'

    SELECT ISDATE(@datestring)

    9,isnull

    使用指定的替換null

    A. 将 ISNULL 与 AVG 一起使用

    下面的示例查找所有书的平均价格,用值 $10.00 替换 titles 表的 price 列中的所有 NULL 条目。

     

    USE pubs

    GO

    SELECT AVG(ISNULL(price, $10.00))

    FROM titles

    GO

    10,isnumeric

    確定表達式是否為一個有效的數字類型

    B. 使用 ISNUMERIC 和 SUBSTRING

    下面的示例对于 titles 表中的所有书名都返回 0,这是因为没有一个书名是有效的数值。

    USE pubs

    GO

    SELECT SUBSTRING(title, 1, 15) type, price, ISNUMERIC(title)

    FROM titles

    GO

    11,@@rowcount

    返回受上一語句影響的行數

    示例

    下面的示例执行 UPDATE 语句并用 @@ROWCOUNT 来检测是否有发生更改的行。

    UPDATE authors SET au_lname = 'Jones'

    WHERE au_id = '999-888-7777'

    IF @@ROWCOUNT = 0

       print 'Warning: No rows were updated'

    12, ASCII

    返回字符表达式最左端字符的 ASCII 代码值。

    语法

    ASCII ( character_expression )

    参数

    character_expression

    是类型为 char 或 varchar的表达式。

    返回类型

    Int

    13, CHAR

    将 int ASCII 代码转换为字符的字符串函数。

    语法

    CHAR ( integer_expression )

    参数

    integer_expression

    介于 0 和 255 之间的整数。如果整数表达式不在此范围内,将返回 NULL 值。

    返回类型

    char(1)

    14, CHARINDEX

    返回字符串中指定表达式的起始位置。

    语法

    CHARINDEX ( expression1 , expression2 [ , start_location ] )

    参数

    expression1

    一个表达式,其中包含要寻找的字符的次序。expression1 是一个短字符数据类型分类的表达式。

    expression2

    一个表达式,通常是一个用于搜索指定序列的列。expression2 属于字符串数据类型分类。

    start_location

    在 expression2 中搜索 expression1 时的起始字符位置。如果没有给定 start_location,而是一个负数或零,则将从 expression2 的起始位置开始搜索。

    返回类型

    Int

    15,LEFT

    返回从字符串左边开始指定个数的字符。

    语法

    LEFT ( character_expression , integer_expression )

    参数

    character_expression

    字符或二进制数据表达式。character_expression 可以是常量、变量或列。character_expression 必须是可以隐式地转换为 varchar 的数据类型。否则,请使用 CAST 函数显式转换 character_expression。

    integer_expression

    是正整数。如果 integer_expression 为负,则返回空字符串。

    返回类型

    Varchar

    16, LEN

    返回给定字符串表达式的字符(而不是字节)个数,其中不包含尾随空格。

    语法

    LEN ( string_expression )

    参数

    string_expression

    要计算的字符串表达式。

    返回类型

    Int

    17, LOWER

    将大写字符数据转换为小写字符数据后返回字符表达式。

    语法

    LOWER ( character_expression )

    参数

    character_expression

    是字符或二进制数据表达式。character_expression 可以是常量、变量或列。character_expression 必须是可以隐性转换为 varchar 的数据类型。否则,使用 CAST 显式转换 character_expression。

    返回类型

    Varchar

    18, LTRIM

    删除起始空格后返回字符表达式。

    语法

    LTRIM ( character_expression )

    参数

    character_expression

    是字符或二进制数据表达式。character_expression 可以是常量、变量或列。character_expression 必须是可以隐性转换为 varchar 的数据类型。否则,使用 CAST 显式转换 character_expression。

    返回类型

    Varchar

    19, REPLACE

    用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。

    语法

    REPLACE ( 'string_expression1' , 'string_expression2' , 'string_expression3' )

    参数

    'string_expression1'

    待搜索的字符串表达式。string_expression1 可以是字符数据或二进制数据。

    'string_expression2'

    待查找的字符串表达式。string_expression2 可以是字符数据或二进制数据。

    'string_expression3'

    替换用的字符串表达式。string_expression3 可以是字符数据或二进制数据。

    返回类型

    如果 string_expression(1、2 或 3)是支持的字符数据类型之一,则返回字符数据。如果 string_expression(1、2 或 3)是支持的 binary 数据类型之一,则返回二进制数据。

    示例

    下例用 xxx 替换 abcdefghi 中的字符串 cde。

    SELECT REPLACE('abcdefghicde','cde','xxx')

    GO

    下面是结果集:

    ------------

    Abxxxfghixxx

    20, REVERSE

    返回字符表达式的反转。

    语法

    REVERSE ( character_expression )

    参数

    character_expression

    由字符数据组成的表达式。character_expression 可以是常量、变量,也可以是字符或二进制数据的列。

    返回类型

    varchar

    注释

    character_expression 必须为可隐性转换为 varchar 的数据类型。否则,使用 CAST 显式转换 character_expression。

    示例

    下例返回所有名字中的字符被反转的作者。

    USE pubs

    GO

    SELECT REVERSE(au_fname)

    FROM authors

    ORDER BY au_fname

    GO

    22, RIGHT

    返回字符串中从右边开始指定个数的 integer_expression 字符。

    语法

    RIGHT ( character_expression , integer_expression )

    参数

    character_expression

    由字符数据组成的表达式。character_expression 可以是常量、变量,也可以是字符或二进制数据的列。

    integer_expression

    是起始位置,用正整数表示。如果 integer_expression 是负数,则返回一个错误。

    返回类型

    varchar

    character_expression 必须为可隐性转换为 varchar 的数据类型。否则,使用 CAST 显式转换 character_expression。

    23, RTRIM

    截断所有尾随空格后返回一个字符串。

    语法

    RTRIM ( character_expression )

    参数

    character_expression

    由字符数据组成的表达式。character_expression 可以是常量、变量,也可以是字符或二进制数据的列。

    返回类型

    Varchar

    24, SPACE

    返回由重复的空格组成的字符串。

    语法

    SPACE ( integer_expression )

    参数

    integer_expression

    是表示空格个数的正整数。如果 integer_expression 为负,则返回空字符串。

    返回类型

    char

    注释

    若要在 Unicode 数据中包括空格,请使用 REPLICATE 而非 SPACE。

    25, STR

    由数字数据转换来的字符数据。

    语法

    STR ( float_expression [ , length [ , decimal ] ] )

    参数

    float_expression

    是带小数点的近似数字 (float) 数据类型的表达式。不要在 STR 函数中将函数或子查询用作 float_expression。

    length

    是总长度,包括小数点、符号、数字或空格。默认值为 10。

    decimal

    是小数点右边的位数。

    返回类型

    char

    注释

    如果为 STR 提供 length 和 decimal 参数值,则这些值应该是正数。在默认情况下或者小数参数为 0 时,数字四舍五入为整数。指定长度应该大于或等于小数点前面的数字加上数字符号(若有)的长度。短的 float_expression 在指定长度内右对齐,长的 float_expression 则截断为指定的小数位数。例如,STR(12,10) 输出的结果是 12,在结果集内右对齐。而 STR(1223, 2) 则将结果集截断为 **。可以嵌套字符串函数。

    说明 若要转换为 Unicode 数据,请在 CONVERT 或 CAST 转换函数内使用 STR。

    示例

    A. 使用 STR

    下例将包含五个数字和一个小数点的表达式转换为有六个位置的字符串。数字的小数部分四舍五入为一个小数位。

    SELECT STR(123.45, 6, 1)

    GO

    下面是结果集:

    ------

     123.5

    26, STUFF

    删除指定长度的字符并在指定的起始点插入另一组字符。

    语法

    STUFF ( character_expression , start , length , character_expression )

    参数

    character_expression

    由字符数据组成的表达式。character_expression 可以是常量、变量,也可以是字符或二进制数据的列。

    start

    是一个整形值,指定删除和插入的开始位置。如果 start 或 length 是负数,则返回空字符串。如果 start 比第一个 character_expression 长,则返回空字符串。

    length

    是一个整数,指定要删除的字符数。如果 length 比第一个 character_expression 长,则最多删除到最后一个 character_expression 中的最后一个字符。

    返回类型

    如果 character_expression 是一个支持的字符数据类型,则返回字符数据。如果 character_expression 是一个支持的 binary 数据类型,则返回二进制数据。

    注释

    可以嵌套字符串函数。

    示例

    下例通过在第一个字符串 (abcdef) 中删除从第二个位置(字符 b)开始的三个字符,然后在删除的起始位置插入第二个字符串,创建并返回一个字符串。

    SELECT STUFF('abcdef', 2, 3, 'ijklmn')

    GO

    下面是结果集:

    ---------

    Aijklmnef

    27, SUBSTRING

    返回字符、binary、text 或 image 表达式的一部分。有关可与该函数一起使用的有效 Microsoft® SQL Server™ 数据类型的更多信息,请参见数据类型。

    语法

    SUBSTRING ( expression , start , length )

    参数

    expression

    是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表达式。

    start

    是一个整数,指定子串的开始位置。

    length

    是一个整数,指定子串的长度(要返回的字符数或字节数)。

    说明 由于在 text 数据上使用 SUBSTRING 时 start 和 length 指定字节数,因此 DBCS 数据(如日本汉字)可能导致在结果的开始或结束位置拆分字符。此行为与 READTEXT 处理 DBCS 的方式一致。然而,由于偶而会出现奇怪的结果,建议对 DBCS 字符使用 ntext 而非 text。

    28, UPPER

    返回将小写字符数据转换为大写的字符表达式。

    语法

    UPPER ( character_expression )

    参数

    character_expression

    由字符数据组成的表达式。character_expression 可以是常量、变量,也可以是字符或二进制数据的列。

    返回类型

    Varchar

    29, ABS

    返回给定数字表达式的绝对值。

    语法

    ABS ( numeric_expression )

    参数

    numeric_expression

    精确数字或近似数字数据类型类别的表达式(bit 数据类型除外)。

    返回类型

    返回与 numeric_expression 相同的类型。

    30, ACOS

    返回以弧度表示的角度值,该角度值的余弦为给定的 float 表达式;本函数亦称反余弦。

    语法

    ACOS ( float_expression )

    参数

    float_expression

    是 float 或 real 类型的表达式,其取值范围从 -1 到 1。对超过此范围的参数值,函数将返回 NULL 并且报告域错误。

    返回类型

    float

    示例

    下例返回给定角的 ACOS 值。

    SET NOCOUNT OFF

    DECLARE @angle float

    SET @angle = -1

    SELECT 'The ACOS of the angle is: ' + CONVERT(varchar, ACOS(@angle))

    下面是结果集:

    ---------------------------------

    The ACOS of the angle is: 3.14159

    31, ASIN

    返回以弧度表示的角度值,该角度值的正弦为给定的 float 表达式;亦称反正弦。

    语法

    ASIN ( float_expression )

    参数

    float_expression

    是 float 类型的表达式,其取值范围从 -1 到 1。对超过此范围的参数值,函数将返回 NULL 并且报告域错误。

    返回类型

    Float

    32, ATAN

    返回以弧度表示的角度值,该角度值的正切为给定的 float 表达式;亦称反正切。

    语法

    ATAN ( float_expression )

    参数

    float_expression

    是 float 类型的表达式。

    返回类型

    Float

    33, ATN2

    返回以弧度表示的角度值,该角度值的正切介于两个给定的 float 表达式之间;亦称反正切。

    语法

    ATN2 ( float_expression , float_expression )

    参数

    float_expression

    float 数据类型的表达式。

    返回类型

    Float

    34, CEILING

    返回大于或等于所给数字表达式的最小整数。

    语法

    CEILING ( numeric_expression )

    参数

    numeric_expression

    是精确数字或近似数字数据类型类别的表达式(bit 数据类型除外)。

    返回类型

    返回与 numeric_expression 相同的类型。

    示例

    下面的示例显示使用 CEILING 函数的正数、负数和零值。

    SELECT CEILING($123.45), CEILING($-123.45), CEILING($0.0)

    GO

    下面是结果集:

    --------- --------- -------------------------

    124.00    -123.00    0.00

    35, COS

    一个数学函数,返回给定表达式中给定角度(以弧度为单位)的三角余弦值。

    语法

    COS ( float_expression )

    参数

    float_expression

    是 float 类型的 expression。

    返回类型

    Float

    36, COT

    一个数学函数,返回给定 float 表达式中指定角度(以弧度为单位)的三角余切值。

    语法

    COT ( float_expression )

    参数

    float_expression

    是 float 类型的 expression。

    返回类型

    Float

    37, DEGREES

    当给出以弧度为单位的角度时,返回相应的以度数为单位的角度。

    语法

    DEGREES ( numeric_expression )

    参数

    numeric_expression

    精确数字或近似数字数据类型类别的表达式(bit 数据类型除外)。

    返回代码值

    返回与 numeric_expression 相同的类型。

    38, EXP

    返回所给的 float 表达式的指数值。

    语法

    EXP ( float_expression )

    参数

    float_expression

    是 float 类型的表达式。

    返回类型

    Float

    39, FLOOR

    返回小于或等于所给数字表达式的最大整数。

    语法

    FLOOR ( numeric_expression )

    参数

    numeric_expression

    精确数字或近似数字数据类型类别的表达式(bit 数据类型除外)。

    返回类型

    返回与 numeric_expression 相同的类型。

    40, LOG

    返回给定 float 表达式的自然对数。

    语法

    LOG ( float_expression )

    参数

    float_expression

    是 float 数据类型的表达式。

    返回类型

    Float

    41, LOG10

    返回给定 float 表达式的以 10 为底的对数。

    语法

    LOG10 ( float_expression )

    参数

    float_expression

    是 float 数据类型的表达式。

    返回类型

    Float

    42, POWER

    返回给定表达式乘指定次方的值。

    语法

    POWER ( numeric_expression , y )

    参数

    numeric_expression

    是精确数字或近似数字数据类型类别的表达式(bit 数据类型除外)。

    y

    numeric_expression 的次方。y 可以是精确数字或近似数字数据类型类别的表达式(bit 数据类型除外)。

    返回类型

    与 numeric_expression 相同。

    43, RADIANS

    对于在数字表达式中输入的度数值返回弧度值。

    语法

    RADIANS ( numeric_expression )

    参数

    numeric_expression

    精确数字或近似数字数据类型类别的表达式(bit 数据类型除外)。

    返回类型

    返回与 numeric_expression 相同的类型。

    44, RAND

    返回 0 到1 之间的随机float 值。

    语法

    RAND ( [ seed ] )

    参数

    seed

    是给出种子值或起始值的整型表达式(tinyint、smallint 或 int)。

    返回类型

    float

    注释

    在单个查询中反复调用 RAND() 将产生相同的值。

    45, ROUND

    返回数字表达式并四舍五入为指定的长度或精度。

    语法

    ROUND ( numeric_expression , length [ , function ] )

    参数

    numeric_expression

    精确数字或近似数字数据类型类别的表达式(bit 数据类型除外)。

    length

    是 numeric_expression 将要四舍五入的精度。length 必须是 tinyint、smallint 或int。当 length 为正数时,numeric_expression 四舍五入为 length 所指定的小数位数。当 length 为负数时,numeric_expression 则按 length 所指定的在小数点的左边四舍五入。

    function

    是要执行的操作类型。function 必须是 tinyint、smallint 或 int。如果省略 function 或 function 的值为 0(默认),numeric_expression 将四舍五入。当指定 0 以外的值时,将截断 numeric_expression。

    返回类型

    返回与 numeric_expression 相同的类型。

    46, SIN

    以近似数字 (float) 表达式返回给定角度(以弧度为单位)的三角正弦值。

    语法

    SIN ( float_expression )

    参数

    float_expression

    是 float 类型的表达式。

    返回类型

    Float

    47, SQUARE

    返回给定表达式的平方。

    语法

    SQUARE ( float_expression )

    参数

    float_expression

    是 float 类型的表达式。

    返回类型

    Float

    48, SQRT

    返回给定表达式的平方根。

    语法

    SQRT ( float_expression )

    参数

    float_expression

    是 float 类型的表达式。

    返回类型

    Float

    49, DATEADD

    在向指定日期加上一段时间的基础上,返回新的 datetime 值。

    语法

    DATEADD ( datepart , number, date )

    50, DATEDIFF

    返回跨两个指定日期的日期和时间边界数。

    语法

    DATEDIFF ( datepart , startdate , enddate )

    51, DATENAME

    返回代表指定日期的指定日期部分的字符串。

    语法

    DATENAME ( datepart , date )

    52, DATEPART

    返回代表指定日期的指定日期部分的整数。

    语法

    DATEPART ( datepart , date )

    53, DAY

    返回代表指定日期的天的日期部分的整数。

    语法

    DAY ( date )

    54, GETDATE

    按 datetime 值的 Microsoft® SQL Server™ 标准内部格式返回当前系统日期和时间。

    语法

    GETDATE ( )

    返回类型

    Datetime

    55, GETUTCDATE

    返回表示当前 UTC 时间(世界时间坐标或格林尼治标准时间)的 datetime 值。当前的 UTC 时间得自当前的本地时间和运行 SQL Server 的计算机操作系统中的时区设置。

    语法

    GETUTCDATE()

    返回类型

    Datetime

    56, MONTH

    返回代表指定日期月份的整数。

    语法

    MONTH ( date )

    参数

    date

    返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。仅对 1753 年 1 月 1 日后的日期使用 datetime 数据类型。

    返回类型

    Int

    57, YEAR

    返回表示指定日期中的年份的整数。

    语法

    YEAR ( date )

    参数

    date

    datetime 或 smalldatetime 类型的表达式。

    返回类型

    Int

    申明

    非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!

    博文欢迎转载,但请给出原文连接。

  • 相关阅读:
    .NET题目(收集来自网络)
    c#反射
    c#泛型
    asp.net core 下载文件,上传excel文件
    remote: HTTP Basic: Access denied fatal: Authentication failed for'https'
    获取jwt(json web token)中存储的用户信息
    System.data.sqlclient.sqlexception:将截断字符串或二进制数据终止
    代码热更新
    左手坐标系 vs 右手坐标系
    GPU相关临时笔记
  • 原文地址:https://www.cnblogs.com/Athrun/p/556960.html
Copyright © 2011-2022 走看看