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
我想按名称升序排列列,并将 --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