2017-08-29 6 views
1

最初の選択肢として、 - 選択してください - を選択して、昇順に名前を列に並べたいとします。 これを可能にするために私のコードを変更する方法はありますか?名前による ご注文の際に最初の選択として選択してください

SELECT DISTINCT 
    firmNetworkID, 
    name 
FROM dbo.tbl_firmNetwork 
UNION 
    SELECT '0', '--Please Select--' 
ORDER BY firmNetworkID 

ソートトップ

に--Please Select--とIDによって ソート

SELECT DISTINCT 
    firmNetworkID, 
    name 
FROM dbo.tbl_firmNetwork 
UNION 
    SELECT '0', '--Please Select--' 
ORDER BY [name] ASC 

おかげ

+0

「プルダウンで選択してください」のようにドロップダウンしますか?代わりに、 '?'次の行で、ユーザーは目的の列名を入力できます。 –

+0

こんにちは@SwastikRajGhoshあなたはそこに何を意味するか説明できますか?動的クエリには本当に便利だと思います。 – PeterH

+0

スクリプトを使用して実装できます。スクリプトを実装するのは大丈夫ですか、SQLだけ必要ですか? –

答えて

3
SELECT DISTINCT 
    firmNetworkID, 
    name, 
    1 P 
FROM dbo.tbl_firmNetwork 
UNION 
    SELECT '0', '--Please Select--', 0 
ORDER BY P, [name] ASC 
+0

実際には、余分なPカラムを必要とせず、代わりにORDER BYでCASEを使用します(下記の回答)。 – SAS

0

は、あなただけの並べ替えのための余分な列を追加することができます。選択では労働組合の後に、あなたはそこオールウェイズ最初

SELECT DISTINCT 
firmNetworkID, 
name as SortOrder, 
name 
FROM dbo.tbl_firmNetwork 

UNION 

SELECT '0','___', '--Please Select--' 
ORDER BY SortOrder ASC 
0

来る何かを置くことができます実際には、余分な列のための必要はありません。 ORDER BYでケースを使用してください:

SELECT firmNetworkID, 
    name 
FROM 
(
    SELECT DISTINCT 
     firmNetworkID, 
     name 
    FROM dbo.tbl_firmNetwork 
    UNION ALL 
     SELECT '0', '--Please Select--' 
    ORDER BY [name] ASC 
) AS i 
ORDER BY CASE WHEN i.name='--Please Select--' THEN 1 ELSE 2 END, i.name 
関連する問題