webForumDet fria alternativet

Skalära frågor

4 svar · 235 visningar · startad av K@llen

K@llenMedlem sedan mars 20032 667 inlägg
#1

Vad menar man med en skalär sql-fråga?

StevePMedlem sedan mars 2003772 inlägg
#2

Jag tror det är att alla värden i SQL-frågan är skalära, alltså att alla är av samma typ

K@llenMedlem sedan mars 20032 667 inlägg
#3

Det tror inte jag, jag tror det har något med subselects att göra?

LarsGMedlem sedan dec. 200012 464 inlägg
#4

En skalär sql-fråga är en fråga som returnerar högst en post.

Du kan ange en skalär fråga på alla ställen där du kan ange ett värde.


select (select min(c1) from t1 where c3 = t3.c3) 
       + ( select max(c2) from t2 where c4 = t3.c4)
  from t3
where 1 = (select count(*) from t5)
--

update t set c = (select min(q) from p where i = t.c)

Det är ganska vanligt att man har en referens till en tabell som finns utanför frågan, detta kallas för en korrelerad fråga.

Skillnaden mot en subselect är att den kan returnera flera poster (med vissa undantag)

select * from t
where c1 in (select c2 from q)
-- blir sant om det finns minst en post i q där 
-- c2 är lika med c1

select * from t
where c1 = (select c2 from q)
-- innebär att det blir fel om q innehåller mer 
-- än en post där c2 är lika med c1

Det är också en skillnad mellan join och subselect. Det går inte generellt att skriva om en subselect som join, även om det är en okorrelerad subselect.

K@llenMedlem sedan mars 20032 667 inlägg
#5

Tack LarsG för ditt utförliga svar. :)

129 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)