0

「name」、「status」-fail または success、「counts」- 1 から 100 のテーブルがあります。「fail」のみの名前が一緒に上に表示され、次に同じ名前が表示されるように並べ替えたいと考えています。失敗と成功を一緒に、次に成功のみを一緒に名前を付けます。SQLクエリ言語を実行できますか? ありがとうございました。

4

2 に答える 2

3

わかりました、これはほとんどの RDBMS で動作するはずです:

SELECT A.*
FROM YourTable A
INNER JOIN (SELECT  name, 
                    COUNT(DISTINCT status) StatusCount,
                    MIN(status) MinStatus
            FROM YourTable
            GROUP BY name) B
    ON A.name = B.name
ORDER BY CASE WHEN StatusCount = 1 AND MinStatus = 'fail' THEN 1
         WHEN StatusCount = 2 THEN 2 
         ELSE 3 END, A.name, A.status
于 2013-02-28T13:25:10.800 に答える
0

MySQLなら

select *, 0 as o
from t
union all
select *, 1 as o
from t
order by
    o = 1 and status != 'fail', o != 1, status = fail
于 2013-02-28T13:25:16.327 に答える