gpt4 book ai didi

mysql - 为什么使用 union,2 个查询的结果在 SQLite 中混合?

转载 作者:行者123 更新时间:2023-11-29 10:48:10 25 4
gpt4 key购买 nike

我想附加 2 个查询的结果。例如:

ResultOfQuery_1

ResultOfQuery_2

我的查询是:

SELECT Id FName,SortString  
FROM CTable
WHERE '1' = DevId AND SortString glob '[A-Z]*'
UNION
SELECT FName,SortString
FROM CTable
WHERE '1' = DevId AND SortString NOT glob '[A-Z]*' ORDER BY FName DESC

作为此查询的输出,两个结果是混合的。我要一件又一件。

谁能帮我得到我想要的结果?

最佳答案

在您的情况下,Order by 适用于整个查询。如果我们可以使用括号,它就会像

(
SELECT Id FName,SortString
FROM CTable
WHERE '1' = DevId AND SortString glob '[A-Z]*'
UNION
SELECT FName,SortString
FROM CTable
WHERE '1' = DevId AND SortString NOT glob '[A-Z]*'
)
ORDER BY FName DESC

您可能会使用一些排序字段

SELECT Id, FName,SortString, 1 as OrderStr
FROM CTable
WHERE '1' = DevId AND SortString glob '[A-Z]*'
UNION
SELECT Id, FName,SortString, 2 as OrderStr
FROM CTable
WHERE '1' = DevId AND SortString NOT glob '[A-Z]*'
ORDER BY OrderStr, FName DESC

或者可能是子查询

SELECT *
FROM(
SELECT Id, FName,SortString
FROM CTable
WHERE '1' = DevId AND SortString glob '[A-Z]*'
ORDER BY FName DESC
) T1
UNION
SELECT *
FROM(
SELECT Id, FName,SortString
FROM CTable
WHERE '1' = DevId AND SortString NOT glob '[A-Z]*'
ORDER BY FName DESC
) T2

关于mysql - 为什么使用 union,2 个查询的结果在 SQLite 中混合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44198373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com