(1).CAST()函数的参数是一个表达式,它包括用AS关键字分隔的源值和目标数据类型。以下例子用于将文本字符串'12'转换为整型:

SELECT CAST('12' AS int)

(2).返回值是整型值12。如果试图将一个代表小数的字符串转换为整型值,又会出现什么情况呢?

SELECT CAST('12.5' AS int)  

(3).CAST()函数和CONVERT()函数都不能执行四舍五入或截断操作。由于12.5不能用int数据类型来表示,所以对这个函数调用将产生一个错误:

Server: Msg 245, Level 16, State 1, Line 1Syntax error converting the varchar value'12.5' to a column of data type int.

(4).要返回一个合法的数值,就必须使用能处理这个值的数据类型。对于这个例子,存在多个可用的数据类型。如果通过CAST()函数将这个值转换为decimal类型,需要首先定义decimal值的精度与小数位数。在本例中,精度与小数位数分别为9 与2。精度是总的数字位数,包括小数点左边和右边位数的总和。而小数位数是小数点右边的位数。这表示本例能够支持的最大的整数值是9999999,而最小的小数是0.01。

SELECT CAST('12.5' AS decimal(9,2))

decimal数据类型在结果网格中将显示有效小数位: 12.50

(5).精度和小数位数的默认值分别是18与0。如果在decimal类型中不提供这两个值,SQL Server将截断数字的小数部分,而不会产生错误。

SELECT CAST('12.5' AS decimal)

结果是一个整数值:12

(6).在表的数据中转换数据类型是很简单的。下面的例子使用Product表,首先执行如下查询:

SELECT ProductNumber, ProductLine, ProductModelIDFROM Production.ProductProductSubCategoryID < 4

(7).假定产品经理已经创建了一个系统,用于唯一地标识生产出来的每辆自行车,以便跟踪其型号、类型和类别。他决定合并产品号、产品生产线标识符、产品型号标识符和一个顺序号,为生产出来的每辆自行车创建一个唯一的序列号。在这个过程的第一步,他要求提供包括除顺序号之外的所有属性的所有可能产品的根标识符。

如果使用下面的表达式,就不能得到希望的结果,如图6-2所示。

SELECT ProductNumber+ '-'+ ProductLine+ '-'+ ProductModelID AS BikeSerialNumFROM Production.ProductWHERE ProductSubCategoryID < 4

我们没有得到希望的结果,而得到了有点奇怪的错误消息:请把nvarchar值转换为 int。因为之前我们没有要求进行任何转换,所以这个错误很奇怪。这个查询的问题在于我们试图利用第一个连接符来连接字符值ProductNumber,利用第二个连接符连接另一个字符值ProductLine,最后连接的是ProductModelID字符值(它是一个整数)。

查询引擎会把连接符当成一个数学运算符,而不是一个字符。不管结果是什么,都需要更正这个表达式,以确保使用正确的数据类型。以下表达式执行了必要的类型转换,返回如图6-3所示的结果:

    SELECT ProductNumber+ '-'+ ProductLine+ '-'+ CAST(ProductModelID AS char(4)) AS BikeSerialNumFROM Production.ProductWHERE ProductSubCategoryID < 4

如果把整型值转换为字符类型就不会增加多余的空格了。查询引擎将把这些值用加号和连接符组合在一起,进行字符串连接运算,而不是和前面的数值进行加法或者减法运算了。

转载于:https://www.cnblogs.com/shuilangyizu/p/5952526.html

sql CAST用法相关推荐

  1. Sql中CAST用法介绍

    1.cast用法简介: CAST (expression AS data_type) 参数说明: expression:任何有效的SQServer表达式. AS:用于分隔两个参数,在AS之前的是要处理 ...

  2. SQL常用用法相关笔记

    SQL常用用法相关笔记 1).----CAST和CONVERT的用法 SQL中的cast和convert都是用来将一种数据类型的表达式转换为另一种数据类型的表达式. CAST和CONVERT提供相似的 ...

  3. 8 种常见的SQL错误用法

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | db匠 来源 | http://yq.aliy ...

  4. 你知道这 8 种 SQL 错误用法吗?

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 来源:r6d.cn/J2bw 简介 MySQL在2016年仍然保持强劲的数 ...

  5. 数据库优化:8 种常见的SQL错误用法

    作者 | db匠 来源 | http://yq.aliyun.com/articles/72501 前言 MySQL在2016年仍然保持强劲的数据库流行度增长趋势.越来越多的客户将自己的应用建立在My ...

  6. 盘点 8 种最坑的 SQL 错误用法

    今天为大家搜集了几类SQL错误用法,纯纯纯纯干货,来了! 1.LIMIT 语句 分页查询是最常用的场景之一,但也通常也是最容易出问题的地方.比如对于下面简单的语句,一般 DBA 想到的办法是在 typ ...

  7. MySQL 性能优化:8 种常见 SQL 错误用法!

    声明:转载自 MySQL 性能优化:8 种常见 SQL 错误用法! 1.LIMIT 语句 分页查询是最常用的场景之一,但也通常也是最容易出问题的地方.比如对于下面简单的语句,一般 DBA 想到的办法是 ...

  8. sql语句用法的一部分整理

    @sql语句用法 一 回顾 DDL create alter drop [truncate==delete] 2. DML select insert update delete 3. DCL gra ...

  9. 数据库 SQL 高级用法

    目录 一.INSERT INTO SELECT 用法 二.逻辑控制语句 三.公式表表达式 四.存储程序 五.触发器 一.INSERT INTO SELECT 用法 INSERT INTO SELECT ...

  10. Oracle数据库中SQL语句用法(一)

    Copyright © 2019 @Linyer. All Rights Reserved 下接Oracle数据库中SQL语句用法(二)[点击以查看] 目录 第1章:编写基本的SQL SELECT语句 ...

最新文章

  1. 算法入门开灯问题,新做法
  2. 第7章 Scrapy突破反爬虫的限制
  3. Tomcat启动时加载本地证书出错的问题
  4. 武魂觉醒s系列服务器,[多线]星河斗罗——新服开荒丨高程度剧情还原丨3D坐骑丨魂环丨武魂觉醒[1.12.2]...
  5. 什么是Apache Spark?这篇文章带你从零基础学起
  6. 【I】ZF2安装 和 创建一个新项目
  7. 软考信息系统项目管理师_信息系统项目管理基础---软考高级之信息系统项目管理师009
  8. linux下怎么查看程序异常,linux程序莫名异常怎么查
  9. mysql对所有id求积_sql 行列式 转换,
  10. 分析ARP***与欺骗
  11. 中文文本纠错算法实现
  12. 【Python-3.5】win7安装Pygame
  13. html引用ttf字体文件
  14. XMind软件简易使用教程
  15. (原創) 如何破解Quartus II 6.0? (IC Design) (Quartus II) (Nios II)
  16. riot修改服务器,如何修改riot拳头账号所在地区 riot账号改地区教程
  17. 马云卸任演讲全文:青山不改 绿水长流 后会有期
  18. Font Awesome 字体符号的使用
  19. panabit策略路由
  20. js正则表达式限定输入框内容为非负数

热门文章

  1. Starling自适应设备大小的做法
  2. 两个工作流:什么时候选择BizTalk,什么时候选择WWF?微软人士给了一个简单的判断原则...
  3. Cisco 静态nat配置
  4. php伪随机数 ctf,[GWCTF 2019]枯燥的抽奖
  5. 构建路径_深度学习的幸福课堂构建从评价细则中找“路径”——基于深度学习的幸福课堂构建实践研究...
  6. 木桶问题MATLAB,物理实验绪论-喻小强.ppt
  7. CreateInstance 方法解析
  8. 对象用[]来获取属性的注意点
  9. 数组 -- 13.2 Maximum Subarray --图解
  10. vue 花括号里面的变量_二、Vue条件指令