データベースから「すべて」として1番目のオプションを持つパーティー名のリストが必要です。しかし、「すべて」をデータベースに挿入することはありません。取得時間のみが必要です。それで、私はこのクエリを書きました。
Select 0 PartyId, 'All' Name
Union
select PartyId, Name
from PartyMst
これが私の結果です
0 All
1 SHIV ELECTRONICS
2 AAKASH & CO.
3 SHAH & CO.
order by Name
結果の下に表示されます。
2 AAKASH & CO.
0 All
3 SHAH & CO.
1 SHIV ELECTRONICS
しかし、私は最初のオプションを「すべて」にしてから、並べ替えられた順序でパーティーのリストを表示します。これどうやってするの?
次のように、ORDER BY
句でCASE
を使用してサブクエリを使用する必要があります。
SELECT * FROM
(
Select 0 PartyId, 'All' Name
Union
select PartyId, Name
from PartyMst
) tbl
ORDER BY CASE WHEN PartyId = 0 THEN 0 ELSE 1 END
,Name
出力:
| PARTYID | NAME |
------------------------------
| 0 | All |
| 2 | AAKASH & CO. |
| 3 | SHAH & CO. |
| 1 | SHIV ELECTRONICS |
次のように、ユニオンの最上位命令で「order by」を使用できます。
Select 0 PartyId, 'All' Name
Union
select * from (
select top (select count(*) from PartyMst) PartyId, Name
from PartyMst
order by Name
)
とにかく0をハードコーディングしているので、AllはAllの前にスペースを追加するだけです。
Select 0 PartyId, ' All' Name
Union
select PartyId, Name
from PartyMst
ORDER BY Name
ラージ