代码之家  ›  专栏  ›  技术社区  ›  Furqan Misarwala

如何在sql server 2016中对奇数序列的记录进行排序

  •  0
  • Furqan Misarwala  · 技术社区  · 6 年前

    如何从列表底部的记录集生成单个记录。

    0. Select All
    1. Apple
    2. Banana
    3. Mango
    

    我需要在底部放置“全选”,如下所示:

    1. Apple
    2. Banana
    3. Mango
    0. Select All
    

    基于Id,而不是值。

    3 回复  |  直到 6 年前
        1
  •  3
  •   Ross Bush    6 年前

    您应该将值为-ALL的计算排序字段与主表合并,然后按计算字段对结果排序。

    SELECT
        *
    FROM
    (
        SELECT
           RowOrder=2,
           RowValue='-ALL-'
        UNION
        SELECT
           RowOrder=1,
           RowValue=FruitTable.Value
        FROM
           FruitTable
    )AS X
    ORDER BY
       X.RowOrder,
       x.RowValue
    
        2
  •  2
  •   hkravitz    6 年前

    与其他答案类似,但我假设您了解该方法:

        ;WITH T (List, Sort) AS 
        (
        SELECT 'Apple' , 1
        UNION ALL
        SELECT 'Banana' ,1 
        UNION ALL 
        SELECT 'Mango' ,1 
        ),
        T2 (List , Sort) AS 
        (
        SELECT * 
        FROM T
        UNION ALL
        SELECT 'Select All'  , 2
        )
        SELECT List 
        FROM T2
        ORDER BY Sort
    
        3
  •  2
  •   Pawan Kumar    6 年前

    请像这样试试。

    SELECT [Values] from 
    (
        SELECT 'Select All' [Values] UNION ALL
        SELECT 'Apple' UNION ALL
        SELECT 'Banana' UNION ALL
        SELECT 'Mango' 
    )u
    ORDER BY Case [Values] WHEN 'SELECT All' THEN 1 ELSE 0 END,[Values]