Portál AbcLinuxu, 7. května 2025 15:01
SELECT
1 a,
1 b,
a + b c;
Pokud ale pridam ctvrty radek "a + b c" pro soucet tech dvou bunek, dostanu tuto chybovou hlasku:
no such column: a: SELECT
1 a,
1 b,
a + b c;
Nemam nejake halucinace?
Řešení dotazu:
hovorí, že výsledok bude tabuľka v ktorej bude jeden riadok dát. Bude tam stĺpec nazvaný 'a', stĺpec nazvaný 'b' a stĺpec nazvaný 'c'. V stĺpci 'a' bude dátová hodnota 1, v stĺpci 'b' bude tiež dátová hodnota '1'. V stĺpci 'c' bude ... čo? Neexistuje hodnota 'a' ktorú by bolo možné sčítať s hodnotou 'b'. 'a' a 'b' pomenovávajú stĺpce výstupu. Ale ty sa ich snažíš použiť ako vstup. Lepšie by to bolo vidno keby si pracoval s tabuľkou. Majme tabuľku 'T' ktorá má stĺpec 'stlpec1' a 'stlpec2':SELECT 1 a, 1 b, a + b c;
SELECT stlpec1 a, stlpec2 b, a + b c from T;Výsledok bude niečo, čo má stĺpec nazvaný 'a' a v ňom hodnoty zo T.stlpec1, potom tam bude stlpec 'b' a v ňom hodnoty z T.stlpec2. A nakoniec stĺpec s názvom 'c' a v nom ...? Neexistuje T.a a T.b. To nefunguje tak, ze pri získavaní hodnoty sa môžeš obrátiť na stĺpce toho, čo vyrábaš.
'a' a 'b' pomenovávajú stĺpce výstupu. Ale ty sa ich snažíš použiť ako vstup.preto treba použiť niečo ako
SELECT a, b, a+b c FROM (SELECT 1 a, 1 b);
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.