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:

  • DISTINKTA

  • GROUP BY

Ordningsskillnad:

  • ORDER BY

Implicit skillnad

Ange åtgärder och predikat (likhet):

  • UNION

  • INTERSECT

  • UTOM

  • SET

  • Ö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

DISTINKTA
UNIONEN

SKÄR

UTOM

SET

ÖVERLAPPNINGAR
I <<=

>>=
ORDER BY Ä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
Referens Ja5 Ja5 Ja5 Ja5 Kasta Kasta Ja5
Koppling

type
Kasta3 Kasta Kasta Kasta Kasta3 Kasta3 Kasta3

1Referenserna för de angivna instanserna av entitetstyp 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