sql >> Database teknologi >  >> RDS >> Sqlserver

SET versus SELECT ved tildeling af variable?

Citat, som opsummerer fra denne artikel:

  1. SET er ANSI-standarden for variabeltildeling, det er SELECT ikke.
  2. SET kan kun tildele én variabel ad gangen, SELECT kan lave flere tildelinger på én gang.
  3. Hvis der tildeles fra en forespørgsel, kan SET kun tildele en skalær værdi. Hvis forespørgslen returnerer flere værdier/rækker, vil SET rejse en fejl. SELECT vil tildele en af ​​værdierne til variablen og skjule det faktum, at flere værdier blev returneret (så du vil sandsynligvis aldrig vide, hvorfor noget gik galt andre steder - god fornøjelse med at fejlfinde den)
  4. Når der tildeles fra en forespørgsel, hvis der ikke er nogen værdi returneret, vil SET tildele NULL, hvor SELECT slet ikke foretager tildelingen (så variablen vil ikke blive ændret fra dens tidligere værdi)
  5. Hvad angår hastighedsforskelle - der er ingen direkte forskelle mellem SET og SELECT. Men SELECT's evne til at lave flere tildelinger i ét skud giver den dog en lille hastighedsfordel i forhold til SET.


  1. Sådan bestiller du efter månedsnavn i SQLite

  2. Syntaksfejl på grund af brug af et reserveret ord som et tabel- eller kolonnenavn i MySQL

  3. java.lang.IllegalArgumentException:kolonne '_id' findes ikke

  4. Oracle SQL Analytisk forespørgsel - rekursiv regnearkslignende kørende total