Поделиться через


CAST (Entity 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

См. также