我有這些表從數據庫。工作臺有2個字段,其中一個是ID_W(數字),另一個是DUTY(文本)。 工作(ID_W,DUTY)SQL查詢usng SELECT語句
我想創建一個sql查詢,它只選擇具有相同DUTY的ID_W(工號的id),其中DUTY是文本類型字段。 有人可以幫我嗎?我想使用一個聚合函數,但它們都沒有幫助。
我有這些表從數據庫。工作臺有2個字段,其中一個是ID_W(數字),另一個是DUTY(文本)。 工作(ID_W,DUTY)SQL查詢usng SELECT語句
我想創建一個sql查詢,它只選擇具有相同DUTY的ID_W(工號的id),其中DUTY是文本類型字段。 有人可以幫我嗎?我想使用一個聚合函數,但它們都沒有幫助。
我用一個臨時表的一個例子,但這個會做你想要什麼,我相信:
SELECT Duty,
STUFF((
SELECT ', ' + CAST(ID_W AS VARCHAR(MAX))
FROM #WORKER
WHERE Duty = T.DUTY
FOR XML PATH(''),TYPE).value('(./text())[1]','VARCHAR(MAX)')
,1,2,'') AS IDs FROM #WORKER T
GROUP BY Duty
如果我正確地理解你的問題,你正在尋找僅工人的ID其DUTY
字段匹配另一名工人。
您可以使用WHERE EXISTS
子句執行此操作,但您需要將TEXT
列的TEXT
列轉換爲VARCHAR (MAX)
以便比較它們。雙方的這種轉換會使查詢變得昂貴,但這是另一種方法:
Select ID_W
From WORKER A
Where Exists
(
Select *
From WORKER B
Where A.ID_W <> B.ID_W
And Convert(Varchar (Max), A.DUTY) = Convert(Varchar (Max), B.DUTY)
)
你是什麼意思*其中DUTY是文本類型字段*? – Siyual
工作臺有兩個字段,其中一個是ID_W,另一個是DUTY – Doen