我有一个在SQL Server函数中生成的字符串,它返回如下:
Leone GW
Leone G
Thompson J
Thompson JC
我需要做的是用HTML标记加粗一些存储在另一个表中的名称。名称可以是:
Leone G
这是名称可能存在的不同方式。我需要创建游标和循环吗?然后我也有一个初始或两者的名称问题。在此示例中,我需要将<b>Leone G</b>
替换为Thompson JC
,将<b>Thompson JC</b>
替换为{{1}}
感谢任何帮助或建议
答案 0 :(得分:4)
这是一种快速方法......本质上是一种标记化替代。
注意:如果要将此技术应用于整个表,则必须将其迁移到UDF中。
修改强>
您可能会注意到子查询中的CROSS JOIN。在这里,您必须添加任何预期的尾随分隔符
示例强>
Declare @YourTable Table ([SomeCol] varchar(50))
Insert Into @YourTable Values
('Leone GW')
,('Leone G')
,('Thompson J')
,('Thompson JC')
Declare @S varchar(max) = 'Ouseph MM, Li J, Chen HZ, Pécot T, Wenzel P, Thompson JC, Comstock G, Chokshi V, Byrne M, Forde B, Chong JL, Huang K, Machiraju R, de Bruin A, Leone G (2012) Atypical E2F repressors and activators coordinate placental development. <i>Dev Cell</i>. 22(4):849-62 PMCID:PMC3483796'
Select @S=Replace(@S,MapFrom,MapTo)
From (
Select MapFrom = SomeCol+suff
,MapTo = '<b>'+SomeCol+'</b>'+suff
From @YourTable B1
Cross Join (values (' ')
,(',')
,('.')
) B2 (suff)
) A
Select @S
<强>返回强>
Ouseph MM,Li J,Chen HZ,PécotT,Wenzel P, Thompson JC Comstock G,Chokshi V,Byrne M,Forde B,Chong JL,Huang K,Machiraju R,de Bruin A, Leone G (2012)非典型E2F阻遏物和激活剂协调胎盘发育。 Dev Cell 。 22(4):849-62 PMCID:PMC3483796