簡體   English   中英

Dropdownlist中的SQL聯合之間的文本-ASP.net C#

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM