Dela via


Jämförelsesemantik (entitets-SQL)

Om du utför någon av följande SQL-entitetsoperatorer kan du jämföra typinstanser:

Explicit jämförelse

Likhetsåtgärder:

  • =

  • !=

Beställningsåtgärder:

  • <

  • <=

  • >

  • >=

Nullabilitetsåtgärder:

  • Är null

  • ÄR INTE NULL

Explicit distinktion

Likhetsskillnad:

  • SÄRSKILD

  • GRUPPERA EFTER

Ordningsskillnad:

  • SORTERA EFTER

Implicit skillnad

Ange åtgärder och predikat (likhet):

  • Förening

  • SKÄRA ÖVERLAPPANDE

  • UTOM

  • STÄLLA

  • ÖVERLAPPNINGAR

Objektpredikat (likhet):

  • IN

Kombinationer som stöds

Följande tabell visar alla kombinationer av jämförelseoperatorer som stöds för varje typ av typ:

Typ =

!=
GRUPPERA EFTER

DISTINCT
UNION

INTERSECT

EXCEPT

STÄLLA

ÖVERLAPPNINGAR
IN < <=

> >=
SORTERA EFTER ÄR NULL

ÄR INTE NULL
Entitetstyp Referens1 Alla egenskaper2 Alla egenskaper2 Alla egenskaper2 Kasta3 Kasta3 Referens1
Komplex typ Kasta3 Kasta3 Kasta3 Kasta3 Kasta3 Kasta3 Kasta3
Rad Alla egenskaper4 Alla egenskaper4 Alla egenskaper4 Kasta3 Kasta3 Alla egenskaper4 Kasta3
Primitiv typ Providerspecifik Providerspecifik Providerspecifik Providerspecifik Providerspecifik Providerspecifik Providerspecifik
Flera uppsättningar Kasta3 Kasta3 Kasta3 Kasta3 Kasta3 Kasta3 Kasta3
Ref Ja5 Ja5 Ja5 Ja5 Kasta Kasta Ja5
Förening

typ
Kasta3 Kasta Kasta Kasta Kasta3 Kasta3 Kasta3

1Referenserna för de angivna entitetstypinstanserna jämförs implicit, vilket visas i följande exempel:

SELECT p1, p2
FROM AdventureWorksEntities.Product AS p1
     JOIN AdventureWorksEntities.Product AS p2
WHERE p1 != p2 OR p1 IS NULL

En entitetsinstans kan inte jämföras med en explicit referens. Om detta görs genereras ett undantag. Följande fråga utlöser till exempel ett undantag:

SELECT p1, p2
FROM AdventureWorksEntities.Product AS p1
     JOIN AdventureWorksEntities.Product AS p2
WHERE p1 != REF(p2)

2Egenskaper för komplexa typer plattas ut innan de skickas till butiken, så de blir jämförbara (så länge alla deras egenskaper är jämförbara). Se även 4.

3Entity Framework-körningen identifierar ärendet som inte stöds och utlöser ett meningsfullt undantag utan att engagera providern/arkivet.

4Ett försök görs att jämföra alla egenskaper. Om det finns en egenskap som är av en icke-jämförbar typ, till exempel text, ntext eller bild, kan ett serverund undantag genereras.

5Alla enskilda element i referenserna jämförs (detta inkluderar entitetsuppsättningens namn och alla nyckelegenskaper för entitetstypen).

Se även