1、cast用法简介:
CAST (expression AS data_type)
参数说明:
expression:任何有效的SQServer表达式。
AS:用于分隔两个参数,在AS之前的是要处理的数据,在AS之后是要转换的数据类型。
data_type:目标系统所提供的数据类型,包括bigint和sql_variant,不能使用用户定义的数据类型。
使用CAST函数进行数据类型转换时,在下列情况下能够被接受:
(1)两个表达式的数据类型完全相同。
(2)两个表达式可隐性转换。
(3)必须显式转换数据类型。
2、示例
看代码时,发现有如下这句:
IF(preweek_group < 0, -1, CAST(t1.preweek_group / 2 AS BIGINT) * 2) AS preweek_group
t1.preweek_group范围为:0,1,2,3,4,5,6,7,。。。,37,38
CAST(t1.preweek_group / 2 AS BIGINT)
范围为:0,1,2,3,4,。。。,19奇数
CAST(t1.preweek_group / 2 AS BIGINT) * 2
范围为:0,2,4,。。。,38 偶数
IF(preweek_group < 0, -1, CAST(t1.preweek_group / 2 AS BIGINT) * 2) AS preweek_group
最终范围为:如果没有指定,则默认-1;其他则是归到0,2,4,6,8,。。。,38这20个偶数中。