工作中遇到這樣一個問題,一張數據庫表中有一個字段file_id,還有一個主鍵f_id(唯一),而file_id不唯一,我想把file_id=‘123456789’的記錄中的f_id(主鍵)連接成一個字符串,並且用‘,’隔開,方便后面的分解和使用,可以用一行代碼搞定,如下:
select wm_concat(f_id) from tablename where file_id='1052018000543';
執行結果 20181124000020,20181124000021,20181124000022,20181124000023,20181124000024
現在又有一個問題,如果我要用動態sql怎么辦,這樣的結果就不是我想要的,我需要把每個元素用單引號引起來,這里推薦另一種方法,代碼如下
select '''' ||replace(to_char(wm_concat(f_id)),',',''',''') || '''' from tablename where file_id = '1052018000543'
結果是 '20181124000020','20181124000021','20181124000022','20181124000023','20181124000024'
一切Ok
SQLserver實現
