Запуск PostgreSQL (7.4 и 8.x), и я думал, что это работает, но теперь я получаю ошибки.
Я могу запускать запросы отдельно, и он работает нормально, но если я UNION или UNION ALL, он выдает ошибку.
Это сообщение об ошибке: (Предупреждение: pg_query (): Ошибка запроса: ОШИБКА: столбец «Поле1» не существует ... ЗАКАЗАТЬ ПО СЛУЧАЮ «Поле1» 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
Это работает:
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
И это тоже работает:
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
и если я оставлю ORDER BY и просто использую UNION или UNION ALL, он также будет работать.
Любые идеи?