想請問各位大大
如果我有一個 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