sách gpt4 ăn đã đi

ĐẶT HÀNG SQL THEO với CASE với UNION ALL

In lại Tác giả: Walker 123 更新时间:2023-11-29 11:14:42 28 4
mua khóa gpt4 giày nike

运行 PostgreSQL(7.4 和 8.x),我认为这是可行的,但现在我遇到了错误。

我可以单独运行查询,它工作得很好,但如果我使用 UNION 或 UNION ALL,它会抛出错误。

这个错误:(警告:pg_query():查询失败:错误:列“Field1”不存在......按情况排序“Field1”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
LIÊN ĐOÀN TẤT CẢ
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
KẾT THÚC

Điều này hoạt động:

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
KẾT THÚC

这也行得通:

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
KẾT THÚC

如果我不使用 ORDER BY 而只使用 UNION 或 UNION ALL,它也能正常工作。

有什么想法吗?

câu trả lời hay nhất

将所有内容放在另一个 SELECT 中:

SELECT * FROM (
SELECT "Field1" AS field_1, "Field2" AS field_2,
"Field3" AS field_3, "Field4" AS field_4
FROM "TableName"
WHERE condition
AND other_condition
LIÊN ĐOÀN TẤT CẢ
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
) As A
ORDER BY CASE field_1
WHEN 'A' THEN 1
WHEN 'B' THEN 2
WHEN 'C' THEN 3
ELSE 4
KẾT THÚC

或者,更好的是,在 ORDER BY 中使用别名,因为它在 UNION 的末尾传递:

  SELECT "Field1" AS field_1, "Field2" AS field_2,
"Field3" AS field_3, "Field4" AS field_4
FROM "TableName"
WHERE condition
AND other_condition
LIÊN ĐOÀN TẤT CẢ
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 field_1
WHEN 'A' THEN 1
WHEN 'B' THEN 2
WHEN 'C' THEN 3
ELSE 4
KẾT THÚC

关于SQL ORDER BY 带 CASE 带 UNION ALL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6427381/

28 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress