Dela via


CAST (Entitets-SQL)

Konverterar ett uttryck av en datatyp till en annan.

Syntax

CAST ( expression AS data_type )

Argument

expression Alla giltiga uttryck som är konvertibla till data_type.

data_type Datatypen som tillhandahålls av målsystemet. Det måste vara en primitiv (skalär) typ. Vilken data_type som används beror på frågeutrymmet. Om en fråga körs med EntityCommandär datatypen en typ som definieras i den konceptuella modellen. Mer information finns i CSDL-specifikation. Om en fråga körs med ObjectQuery<T>är datatypen en CLR-typ (Common Language Runtime).

Returvärde

Returnerar samma värde som data_type.

Kommentarer

Cast-uttrycket har liknande semantik som Transact-SQL CONVERT-uttrycket. Cast-uttrycket används för att konvertera ett värde av en typ till ett värde av en annan typ.

CAST( e as T )

Om e är av någon typ S och S är konvertibelt till T är uttrycket ovan ett giltigt cast-uttryck. T måste vara en primitiv (skalär) typ.

Värden för precisions- och skalningsfasetter kan eventuellt anges vid gjutning till Edm.Decimal. Om det inte uttryckligen anges är standardvärdena för precision och skalning 18 respektive 0. Mer specifikt stöds följande överlagringar för Decimal:

  • CAST( d as Edm.Decimal );

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

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

Användningen av ett cast-uttryck anses vara en explicit konvertering. Explicita konverteringar kan trunkera data eller förlora precision.

Kommentar

CAST stöds endast för primitiva typer och uppräkningsmedlemstyper.

Exempel

Följande entitets-SQL-fråga använder CAST-operatorn för att omvandla ett uttryck av en datatyp till en annan. Frågan baseras på AdventureWorks försäljningsmodell. Följ dessa steg för att kompilera och köra den här frågan:

  1. Följ proceduren i Så här kör du en fråga som returnerar PrimitiveType-resultat.

  2. Skicka följande fråga som ett argument till ExecutePrimitiveTypeQuery metoden:

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

Se även