我正在替換臨時表的列的某些文本(掩碼)。我用一列表替換可搜索的文本。如何使用SQL Server進行多個替換 - T-SQL
例子:
SELECT TOP 1000 *
INTO TEMP_COMPL_L
FROM TB_CONTRATO
WHERE IDCAR_CON = 1
ALTER TABLE TEMP_COMPL_L
ADD COMPL_TMP VARCHAR(1500)
UPDATE TEMP_COMPL_L
SET COMPL_TMP = '#FIRSTNAME#, URGENTE: Va a sua loja no dia #DATE# e procure o Gerente #MANAGERNAME#.'
-- GET DATAS FROM MASKS HERE
UPDATE TEMP_COMPL_L
SET COMPL_TMP = REPLACE(REPLACE(REPLACE(COMPL_TMP,
'#FIRSTNAME#', LEFT(NOME_CLI, CHARINDEX(' ',NOME_CLI)-1)),
'#MANAGERNAME#', ISNULL(CONTT_LOJ,'')),
'#DATE#', CONVERT(VARCHAR(10), GETDATE(), 103)
)
FROM TEMP_COMPL_L
INNER JOIN TB_CLIENTE ON IDCLI_TMP = IDCLI_CLI
LEFT JOIN TB_LOJA ON IDLOJ_TMP = IDLOJ_LOJ
它完美的作品這樣,不過,我需要爲客戶端通知20多個可能的面具做到這一點,以面具和給予更換爲的價值表LOJA和CLIENTE中的相應列。
有沒有更好的表現和明顯的可讀性的方法?因爲幾次替換會非常困惑。除了在SQL Server中允許替換的限制之外。
嵌套替換速度非常快,並且您可以使用的編號沒有限制。將其格式化的格式可能會變得很具挑戰性,但看起來您已經有了一個很好的模式。 –
我以爲我有一個嵌套的限制。我會這樣看的。 – Luiz