Förstå underfrågor

Slutförd

En underfråga är en SELECT-instruktion kapslad i en annan fråga. Om du kan kapsla en fråga i en annan kan du skapa effektiva frågor i T-SQL. I allmänhet utvärderas underfrågor en gång och ger resultatet till den yttre frågan.

Arbeta med underfrågor

En underfråga är en SELECT-instruktion kapslad eller inbäddad i en annan fråga. Den kapslade frågan, som är underfrågan, kallas för den inre frågan. Frågan som innehåller den kapslade frågan är den yttre frågan.

Syftet med en underfråga är att returnera resultat till den yttre frågan. Resultatets form avgör om underfrågan är en skalär eller flervärdesunderfråga:

  • Skalär underfrågor returnerar ett enda värde. Yttre frågor måste bearbeta ett enda resultat.
  • Underfrågor med flera värden returnerar ett resultat ungefär som en tabell med en kolumn. Yttre frågor måste kunna bearbeta flera värden.

Förutom valet mellan skalära och flervärdesunderfrågor kan underfrågor antingen vara fristående underfrågor eller korreleras med den yttre frågan:

  • Fristående underfrågor kan skrivas som fristående frågor, utan beroenden för den yttre frågan. En fristående underfråga bearbetas en gång när den yttre frågan körs och skickar dess resultat till den yttre frågan.
  • Korrelerade underfrågor refererar till en eller flera kolumner från den yttre frågan och är därför beroende av den. Korrelerade underfrågor kan inte köras separat från den yttre frågan.