• SQL字段类型转换Cast和Convert


    CAST 和 CONVERT

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

    语法

    使用 CAST:

    CAST ( expression AS data_type )

    使用 CONVERT:

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

    参数

    expression

    是任何有效的 Microsoft® SQL Server™ 表达式。有关更多信息,请参见表达式

    data_type

    目标系统所提供的数据类型,包括 bigintsql_variant。不能使用用户定义的数据类型。有关可用的数据类型的更多信息,请参见数据类型

    length

    ncharnvarcharcharvarcharbinaryvarbinary 数据类型的可选参数。

    使用二进制字符串数据

    binary varbinary 数据转换为字符数据并且在 x 后面指定了奇数位的值时,SQL Server 在 x 后面添加 0(零)以成为偶数位值。

    二进制数据包含从 0 到 9 和从 A 到 F(或从 a 到 f)的字符,每两个字符为一组。二进制字符串必须以 0x 开头。例如,若要输入 FF,请键入 0xFF。最大值是一个 8000 字节的二进制值,每个字节的最大值都是 FF。Binary 数据类型不能用于十六进制数据,而是用于位模式。对于存储为二进制数据的十六进制数字的转换和计算结果,无法保证其准确性。

    当指定 binary 数据类型的长度时,每两个字符被算作是一个单位长度。长度 10 表示将输入 10 个双字符组。

    由 0x 表示的空二进制字符串可以储存为二进制数据。

    示例
    A. 同时使用 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

    下面是任一查询的结果集:

    Title                          ytd_sales   
    ------------------------------ -----------
    Cooking with Computers: Surrep 3876
    Computer Phobic AND Non-Phobic 375
    Emotional Security: A New Algo 3336
    Onions, Leeks, and Garlic: Coo 375

    (4 row(s) affected)
    B. 使用带有算术运算符的 CAST

    下面的示例通过将总的截止当前销售额 (ytd_sales) 与每本图书的价格 (price) 相除,进行单独列计算 (Copies)。在四舍五入到最接近的整数后,此结果将转换为 int 数据类型。

    USE pubs
    GO
    SELECT CAST(ROUND(ytd_sales/price, 0) AS int) AS 'Copies'
    FROM titles
    GO

    下面是结果集:

    Copies      
    ------
    205
    324
    6262
    205
    102
    7440
    NULL
    383
    205
    NULL
    17
    187
    16
    204
    418
    18
    1263
    273

    (18 row(s) affected)
    C. 使用 CAST 进行串联

    下面的示例使用 CAST 数据类型转换函数来串联非字符、非二进制表达式。

    USE pubs
    GO
    SELECT 'The price is ' + CAST(price AS varchar(12))
    FROM titles
    WHERE price > 10.00
    GO

    下面是结果集:

    ------------------ 
    The price is 19.99
    The price is 11.95
    The price is 19.99
    The price is 19.99
    The price is 22.95
    The price is 20.00
    The price is 21.59
    The price is 10.95
    The price is 19.99
    The price is 20.95
    The price is 11.95
    The price is 14.99

    (12 row(s) affected)
    D. 使用 CAST 获得更多易读文本

    下面的示例在选择列表中使用 CAST 将 title 列转换为 char(50) 列,这样结果将更加易读。

    USE pubs
    GO
    SELECT CAST(title AS char(50)), ytd_sales
    FROM titles
    WHERE type = 'trad_cook'
    GO

    下面是结果集:

                                                           ytd_sales
    -------------------------------------------------- ---------
    Onions, Leeks, and Garlic: Cooking Secrets of the 375
    Fifty Years in Buckingham Palace Kitchens 15096
    Sushi, Anyone? 4095

    (3 row(s) affected)
    E. 使用带有 LIKE 子句的 CAST

    下面的示例将 int 列(ytd_sales 列)转换为 char(20) 列,以便使用 LIKE 子句。

    USE pubs
    GO
    SELECT title, ytd_sales
    FROM titles
    WHERE CAST(ytd_sales AS char(20)) LIKE '15%'
    AND type = 'trad_cook'
    GO

    下面是结果集:

    title                                                        ytd_sales   
    ------------------------------------------------------------ -----------
    Fifty Years in Buckingham Palace Kitchens 15096

    (1 row(s) affected)


    节选自 SQL2000帮助文件,
    放在这里方便大家查看, 懂的人就不要拍砖了。
  • 相关阅读:
    vuex
    koa2+node+vue自启服务运行本地脚本
    重新认识js(一)
    JQuery图片左右无缝滚动
    javascript兼容性很好的省市区联动,易修改
    JQuery超级简单的TAB选项卡
    ViewState的原理分析
    JQuery图片切换特效
    asp.net验证控件详解【转】
    时间线 制作
  • 原文地址:https://www.cnblogs.com/xjyggd/p/1345864.html
Copyright © 2020-2023  润新知