我有一個名爲empl_type_multi的列,它只是逗號分隔的列,每個值都是指向另一個稱爲自定義標題的表的鏈接。TSQL,在逗號分隔列上更改值
例如,我可能有以下作爲empl_type_multi值:
123, RHN, 458
然後在custom_captions表這些是單個值:
123 = Dog
RHN = Cat
458 = Rabbit
所有這些領域都是NTEXT。
什麼,我試圖做的是轉換empl_type_multi列,在上面的例子中它有機會在custom_captions表中各自的名稱,所以:
123, RHN, 458
將成爲
Dog, Cat, Rabbit
任何對此的幫助將不勝感激。
-----編輯---------------------------------------- --------------------------
好吧,所以我設法將這些值轉換爲相應的標題,並將它們全部放到臨時表中,以下是從CTE查詢的輸出放在桌子上:
ID1 ID2 fName lName Caption_name Row_Number
10007 22841 fname1 lname1 DENTAL ASSISTANT 1
10007 22841 fname1 lname1 2
10007 22841 fname1 lname1 3
10008 23079 fname2 lname2 OPS WARD 1
10008 23079 fname2 lname2 DENTAL 2
10008 23079 fname2 lname2 3
使下標題名稱,也被添加到用逗號分隔ROW_NUMBER 1的標題名稱我怎麼能更新嗎?
如果我能做到這一切,我需要做的就是刪除所有記錄ROW_NUMBER!= 1
------編輯--------------- -----------------------------------
第一次編輯的解決方案是:
WITH CTE AS
(
SELECT
p.ID1
, p.ID2
, p.fname
, p.lname
, p.caption_name--
, ROW_NUMBER() OVER (PARTITION BY p.id1ORDER BY caption_name DESC) AS RN
FROM tmp_cs p
)
UPDATE tblPerson SET empType = empType + ', ' + c.Data
FROM CTE c WHERE [DB1].dbo.tblPerson.personID = c.personID AND RN = 2
然後我只是遞增RN = 2,直到我得到0行受影響。
這之後,我跑:
DELETE FROM CTE WHERE RN != 1 AND Caption_name = ''
這聽起來像循環容易構建CAPTION_NAME串你需要規範你的數據結構。 – artm
這不是我的數據庫,我被給了它,並被告知將這些數據導出到Excel電子表格中。 –