iT邦幫忙

0

MS SQL資料庫變數mapping

  • 分享至 

  • xImage

想請問各位大大
如果我有一個 table 紀錄模板、一個table紀錄對應表和實際的資料

    -- 模板
    DECLARE @template TABLE (content nvarchar(max))
    INSERT INTO @template (content)
    SELECT '#member# 您好,#content# #company# 敬上'
    UNION
	SELECT '#col_0# 您好,#col_2# #col_1# 敬上'
    
    -- 對應表
    DECLARE @var_col_mapping TABLE (variable varchar(50), col varchar(10))
    INSERT INTO @var_col_mapping(variable,col)
    SELECT 'member','#col_0#'
    UNION
    SELECT 'company','#col_1#'
    UNION
    SELECT 'content','#col_2#'
    
    --資料
    DECLARE @raw_data TABLE (data nvarchar(max))
    INSERT INTO @raw_data(data)
    SELECT 'A123456789,股分有限公司,XXX'
    UNION
	SELECT 'A123456788,股分有限公司,OOO'

我要怎麼組出最後的結果分別是 A123456789 您好,XXX 股分有限公司 敬上 A123456788 您好,OOO 股分有限公司 敬上

目前想到用PATINDEX可以抓到在模板content裡有變數註記的地方 PATINDEX('%#%#%',content)想說用STUFF可以換掉他

SELECT STUFF(content,PATINDEX('%#%#%',content),1,'')
FROM @template

但最後兩個參數就不知道怎麼放了... 我只能知道有變數註記的地方的開頭的index,並不能知道我要取代掉多少的長度,也抓不到符合#%#中的%內容,所以不知道拿什麼字串去替換QQ

小魚 iT邦大師 1 級 ‧ 2021-04-23 17:46:03 檢舉
你確定不考慮,
在後端組嗎?
ice bear iT邦新手 4 級 ‧ 2021-04-26 10:37:19 檢舉
因為某些原因 所以只能在資料庫組...
有寫了一個function 但是實在太耗時間了,不知道怎麼辦ˊˋ
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答