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).