Was ist schneller?SQL Server: Wählen Sie in vs oder?
SELECT UserName
FROM dbo.UserTable
WHERE UserID in (1,3,4)
SELECT UserName
FROM dbo.UserTable
WHERE UserID = 1
OR UserID = 3
OR UserID = 4
Was ist schneller?SQL Server: Wählen Sie in vs oder?
SELECT UserName
FROM dbo.UserTable
WHERE UserID in (1,3,4)
SELECT UserName
FROM dbo.UserTable
WHERE UserID = 1
OR UserID = 3
OR UserID = 4
Durch SQL Server Optimierung von Abfragen diese mit der gleichen Geschwindigkeit laufen, da sie logisch äquivalent sind.
ich bevorzuge die IN-Syntax für die Kürze und Lesbarkeit.
Eher dann Or/In gibt es irgendeine Möglichkeit, abzufragen? das wird schneller funktionieren? – Worgon
@Worgon Wenn die Anzahl der Werte groß ist, können Sie die verschiedenen Werte in eine indizierte temporäre Tabelle einfügen und sich daran anschließen. –
Eigentlich ist es das gleiche.
Wenn Sie den geschätzten Ausführungsplan anzeigen, sehen Sie, dass dieselbe Aktion ausgeführt wird.
Dies ist relevant, wenn es darum geht, SQL über Linq zu erzeugen. Es gibt einige Fälle, in denen der erstellte SQL-Code die Form von: field = 'xxx' OR field = 'yyy' hat.
Können Sie das bitte klären? Ich habe keine Ahnung, was du sagst. – tbodt
http://stackoverflow.com/questions/3074713/in-vs-or-in-the-sql-where-clause – rdo