Ich benutze SQL (SQL Server, PostgreSQL) über 10 Jahre und immer noch bin ich nie verwendet ANY/SOME
und ALL
Schlüsselwörter in meinem Produktionscode. Alle Situation, die ich angetroffen habe, konnte ich mit IN
, MAX
, MIN
, EXISTS
, und ich denke, es ist lesbarer.SQL: Brauchen wir ANY/SOME und ALL keywords?
Zum Beispiel:
-- = ANY
select * from Users as U where U.ID = ANY(select P.User_ID from Payments as P);
-- IN
select * from Users as U where U.ID IN (select P.User_ID from Payments as P);
Oder
-- < ANY
select * from Users as U where U.Salary < ANY(select P.Amount from Payments as P);
-- EXISTS
select * from Users as U where EXISTS (select * from Payments as P where P.Amount > U.Salary);
Mit ANY/SOME
und ALL
:
Die Frage ist also: bin ich etwas fehlt? Gibt es eine Situation, in der ANY/SOME
und ALL
über andere Lösungen glänzen?
Ich habe sie auch nicht in den letzten 13 Jahren verwendet. –
Ich habe auch 'EXCEPT' nie benutzt. Ich bleibe bei 'NOT EXISTS' – joop
Ich konnte dem nicht zustimmen, ich denke' EXCEPT' ist nützlich, um Unterschiede zwischen zwei Tabellen mit demselben Schema zu finden –