cast() 函数
来源:互联网 发布:qq机器人软件 编辑:程序博客网 时间:2024/06/14 05:21
sql cast()函数
把一个类型转换为另一个类型。常用数据类型转换。
(1).CAST()函数的参数是一个表达式,它包括用AS关键字分隔的源值和目标数据类型。以下例子用于将文本字符串'12'转换为整型:
(2).返回值是整型值12。如果试图将一个代表小数的字符串转换为整型值,又会出现什么情况呢?
SELECT CAST('12.5' AS int)
(3).CAST()函数和CONVERT()函数都不能执行四舍五入或截断操作。由于12.5不能用int数据类型来表示,所以对这个函数调用将产生一个错误:
Server: Msg 245, Level 16, State 1,Line 1
Syntax error converting the varcharvalue
(4).要返回一个合法的数值,就必须使用能处理这个值的数据类型。对于这个例子,存在多个可用的数据类型。如果通过CAST()函数将这个值转换为decimal类型,需要首先定义decimal值的精度与小数位数。在本例中,精度与小数位数分别为9与2。精度是总的数字位数,包括小数点左边和右边位数的总和。而小数位数是小数点右边的位数。这表示本例能够支持的最大的整数值是9999999,而最小的小数是0.01。
SELECT CAST('12.5' AS decimal(9,2))
decimal数据类型在结果网格中将显示有效小数位:
(5).精度和小数位数的默认值分别是18与0。如果在decimal类型中不提供这两个值,SQLServer将截断数字的小数部分,而不会产生错误。
SELECT CAST('12.5' AS decimal)
(6).在表的数据中转换数据类型是很简单的。下面的例子使用Product表,首先执行如下查询:
SELECT ProductNumber, ProductLine, ProductModelID
FROM Production.Product
(7).假定产品经理已经创建了一个系统,用于唯一地标识生产出来的每辆自行车,以便跟踪其型号、类型和类别。他决定合并产品号、产品生产线标识符、产品型号标识符和一个顺序号,为生产出来的每辆自行车创建一个唯一的序列号。在这个过程的第一步,他要求提供包括除顺序号之外的所有属性的所有可能产品的根标识符。
如果使用下面的表达式,就不能得到希望的结果,如图6-2所示。
1.SELECT ProductNumber
2. + '-'
我们没有得到希望的结果,而得到了有点奇怪的错误消息:请把nvarchar值转换为int。因为之前我们没有要求进行任何转换,所以这个错误很奇怪。这个查询的问题在于我们试图利用第一个连接符来连接字符值ProductNumber,利用第二个连接符连接另一个字符值ProductLine,最后连接的是ProductModelID字符值(它是一个整数)。
查询引擎会把连接符当成一个数学运算符,而不是一个字符。不管结果是什么,都需要更正这个表达式,以确保使用正确的数据类型。以下表达式执行了必要的类型转换,返回如图6-3所示的结果:
- SELECT ProductNumber
-
+ '-' -
+ ProductLine -
+ '-' -
+ CAST(ProductModelID AS char(4)) AS BikeSerialNum - FROM Production.Product
- WHERE ProductSubCategoryID < 4
如果把整型值转换为字符类型就不会增加多余的空格了。查询引擎将把这些值用加号和连接符组合在一起,进行字符串连接运算,而不是和前面的数值进行加法或者减法运算了。
- CAST函数
- cast() 函数
- CAST()函数
- cast函数
- oracle cast() 函数问题
- mysql convert() cast()函数
- 了解MYSQL Cast函数
- oracle cast() 函数问题
- sql cast()函数
- Oracle cast函数
- hibernate 的cast函数
- Mysql SQL CAST()函数
- 了解MYSQL Cast函数
- Isnull() CAST()函数
- SQL中的cast()函数
- SQL中的cast()函数
- sql----cast函数
- oracle函数-cast
- js实现连续英文字符自动换行
- jquery 无刷新翻页
- window_linux字符转换
- 黑马程序员--面向对象模板方法模式
- Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK fl
- cast() 函数
- 什么是软件测试及其目标
- 关于调用RANDOM(0,1)产生0和1的几率都为1/2,实现RANDOM(a,b)的过程
- 设计软件 为什么就是这么高科技?
- matlab曲线拟合工具箱简明使用说明
- delphi xe2下的datasnap心跳包设置
- Java_9+8实训Day0905作业题
- Grand Central Dispatch(GCD)介绍和使用
- Cocos2d—X游戏开发之 CCLabelTTF 标签详解和对齐方式设置(分数显示)(十六)