[英]Text between SQL unions in Dropdownlist - ASP.net c#
我有一個SQL查詢,該查詢帶回了最重要的人員,這些人員應出現在下拉列表的頂部,然后是此下方的所有其他人員。
該查詢使用聯合來構建,以將兩個查詢一起收集。
我想在下拉列表的頂部放置文本,在工會之間添加文本。 這可能嗎?
EG“首選工作人員”為最高職位,“其他所有工作人員”將兩個工會分開
select DISTINCT e.EMPLOY_REF, e.FORENAME + ' ' + e.SURNAME as Name
from EMPLOYEE_TABLE e
where e.ID = @ID
and e.DATE_LEFT IS NULL or e.DATE_LEFT > GETDATE()
UNION ALL
select DISTINCT e.EMPLOY_REF, e.FORENAME + ' ' + e.SURNAME as Name
from EMPLOYEE_TABLE e
where e.DATE_LEFT IS NULL or e.DATE_LEFT > GETDATE()
ORDER BY Name
您可以在兩者之間添加一個虛擬選擇
SELECT 'Name 1' AS A, 1 AS sortOrder
UNION ALL
SELECT '----' AS B, 2 AS sortOrder
UNION ALL
SELECT 'Name 2' AS C, 3 AS sortOrder
ORDER BY sortOrder, A
在你的情況下,看起來像這樣
SELECT DISTINCT e.EMPLOY_REF, e.FORENAME + ' ' + e.SURNAME as Name, 1 AS sortOrderFROM EMPLOYEE_TABLE e
UNION ALL
SELECT '----', '----' AS B, 2 AS sortOrder
UNION ALL
SELECT DISTINCT e.EMPLOY_REF, e.FORENAME + ' ' + e.SURNAME as Name, 3 AS sortOrderFROM EMPLOYEE_TABLE e
ORDER BY sortOrder, Name
最好的選擇是在每個查詢中都包含某種“排序順序”字段。 也許是像星號這樣的標識符標記了它們的首選。
-- Preferred Employees
SELECT '* ' + NameInfo, 1
FROM Employees
WHERE YaddaYadda
UNION
-- Normal Employees
SELECT NameInfo, 2
FROM Employees
WHERE YaddaYadda
然后,您可以在代碼中使用sort by,以先按排序順序排序,然后再按名稱排序。
你可以嘗試跟隨
SELECT 0, 'Preferred Staff Members'
UNION ALL
select DISTINCT e.EMPLOY_REF, e.FORENAME + ' ' + e.SURNAME as Name
from EMPLOYEE_TABLE e
where e.ID = @ID
and e.DATE_LEFT IS NULL or e.DATE_LEFT > GETDATE()
UNION ALL
SELECT -1, 'All Other Staff members'
UNION ALL
select DISTINCT e.EMPLOY_REF, e.FORENAME + ' ' + e.SURNAME as Name
from EMPLOYEE_TABLE e
where e.DATE_LEFT IS NULL or e.DATE_LEFT > GETDATE()
ORDER BY Name
然后,您可以輕松識別由(0或-1)選擇的選項
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.