CAST (实体 SQL)

将一种数据类型的表达式转换为另一种。

语法

CAST ( expression AS data_type )

论据

expression 任何可转换为 data_type. 的有效表达式。

data_type 目标系统提供的数据类型。 它必须是基元(标量)类型。 使用的 data_type 取决于查询空间。 如果使用该 EntityCommand查询执行查询,则数据类型是在概念模型中定义的类型。 有关详细信息,请参阅 CSDL 规范。 如果使用查询执行 ObjectQuery<T>查询,则数据类型是公共语言运行时 (CLR) 类型。

返回值

返回与 . 相同的值 data_type

注解

强制转换表达式具有与 Transact-SQL CONVERT 表达式类似的语义。 强制转换表达式用于将一种类型的值转换为另一种类型的值。

CAST( e as T )

如果 e 是某种类型的 S,并且 S 可转换为 T,则上述表达式是有效的强制转换表达式。 T 必须是基元(标量)类型。

在转换为 Edm.Decimal时,可以选择提供精度和刻度方面的值。 如果未显式提供,精度和小数位数的默认值分别为 18 和 0。 具体而言,支持 Decimal以下重载:

  • CAST( d as Edm.Decimal );

  • CAST( d as Edm.Decimal(precision) );

  • CAST( d as Edm.Decimal(precision, scale) );

强制转换表达式的使用被视为显式转换。 显式转换可能会截断数据或丢失精度。

注释

CAST 仅支持基元类型和枚举成员类型。

示例:

以下 Entity SQL 查询使用 CAST 运算符将一种数据类型的表达式强制转换为另一种数据类型。 查询基于 AdventureWorks 销售模型。 若要编译并运行此查询,请执行以下步骤:

  1. 按照作方法中的过程作 :执行返回 PrimitiveType 结果的查询

  2. 将以下查询作为参数传递给 ExecutePrimitiveTypeQuery 方法:

SELECT VALUE cast(p.ListPrice as Edm.Int32)
    FROM AdventureWorksEntities.Products as p order by p.ListPrice

另请参阅