Uruchamianie PostgreSQL (7.4 i 8.x) i myślałem, że to działa, ale teraz dostaję błędy.SQL ORDER BY z CASE z UNION ALL
Mogę uruchamiać zapytania osobno i działa dobrze, ale jeśli I UNION lub UNION ALL to spowoduje błąd.
to uwagę błędy: (Uwaga: pg_query(): Query failed: BŁĄD: kolumna "Pole1" nie istnieje ... ORDER BY CASE "Pole1" W ...)
SELECT "Field1" AS field_1, "Field2" AS field_2,
"Field3" AS field_3, "Field4" AS field_4
FROM "TableName"
WHERE condition
AND other_condition
UNION ALL
SELECT "Field1" AS field_1, "Field2" AS field_2,
"Field3" AS field_3, "Field4" AS field_4
FROM "TableName"
WHERE yet_another_condition
AND yet_another_other_condition
ORDER BY CASE "Field1"
WHEN 'A' THEN 1
WHEN 'B' THEN 2
WHEN 'C' THEN 3
ELSE 4
END
to działa :
SELECT "Field1" AS field_1, "Field2" AS field_2,
"Field3" AS field_3, "Field4" AS field_4
FROM "TableName"
WHERE yet_another_condition
AND yet_another_other_condition
ORDER BY CASE "Field1"
WHEN 'A' THEN 1
WHEN 'B' THEN 2
WHEN 'C' THEN 3
ELSE 4
END
i to działa tak samo:
SELECT "Field1" AS field_1, "Field2" AS field_2,
"Field3" AS field_3, "Field4" AS field_4
FROM "TableName"
WHERE condition
AND other_condition
ORDER BY CASE "Field1"
WHEN 'A' THEN 1
WHEN 'B' THEN 2
WHEN 'C' THEN 3
ELSE 4
END
i jeśli wyjdę poza ORDER BY i po prostu korzystać z Unii lub UNION ALL go działa również.
Jakieś pomysły?
Nie będzie działać, ponieważ '" Pole1 "' nie jest nazwą kolumny. – Benoit
Niestety nie działa, ten sam błąd –
Tak, zauważyłem to. Odpowiedź zmodyfikowana .... – CristiC