我已经创建了一条选择语句
SELECT [source_name]+''''/''''+[schema_name]+''''/''''+[table_name] AS [path],
[application_name],
[database_name],
[schema_name],
[table_name],
[source_name],
Substring(source_table_name, 0, 3) AS source,
replace([query],''''desc'''',''''"DESC"'''') AS query,
FROM [cdi].[parameter_master] p (nolock)
JOIN [cdi].application_master a (nolock)
ON a.application_id = p.application_id
在这一部分
replace([query],''''desc'''',''''\"DESC\"'''') as query
[query]值为
SELECT a.desc,
a.occ_desc AS occ_desc,
a.dth_dt AS dth_dt,
a.hire_dt AS hire_dt,
a.insd_empe_nbr AS insd_empe_nbr,
a.surg_ind AS surg_ind,
a.src_clm_pty_id AS src_clm_pty_id,
a.elmtry_clm_anchr_id AS elmtry_clm_anchr_id,
a.lic_nbr_txt AS lic_nbr_txt,
a.atty_hire_rsn_desc AS atty_hire_rsn_desc,
a.atty_catg_desc AS atty_catg_desc,
a.dfns_appt_dt AS dfns_appt_dt,
a.empr_nm AS empr_nm,
a.extl_refr_cd AS extl_refr_cd,
a.src_sys_cd AS src_sys_cd
FROM dbaall.pty_rol_in_clm a
WHERE a.e_tistmp >= timestamp('2018-01-01 00:00:00')
OR (
a.e_to_tistmp >= timestamp('2018-01-01 00:00:00')
AND a.e_to_tistmp < timestamp('2018-03-31 00:00:00'))
我只想将a.DESC
替换为a.\"DESC\"
但是replace()
函数会替换[query]字符串中所有出现的DESC。
我想写一个案例,当基于.desc的语句找到时,仅替换else字符串不应该被替换。
我该如何解决?
答案 0 :(得分:0)
这段代码解决了这个问题: replace([query],''''a.DESC'''',''''a。\“ DESC \”'''')