Order By 请 select 作为首选

Order By with please select as first choice

我想按名称升序排列列,并将 --Please Select-- 作为首选。 有没有办法可以更改我的代码以允许这样做? 按 ID 排序,将 --Please Select-- 置于顶部

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

按名称排序

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

谢谢

您可以添加一个额外的列仅用于排序。在合并后的 Select 中,你可以放一些总是先出现的东西

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

UNION

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

实际上,不需要额外的列。只需在 ORDER BY 中使用一个 CASE:

 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