更新sqlserver

时间:2019-02-10 15:50:41

标签: sql sql-server

我根据此逻辑有很多行要更新: 如果该行中有'$$%',则更新为'<b>$$%</b> 例如:

my name is $$997

需要更新到

my name is <b>$$997</b>

我尝试过:

update t_questions set qtext = replace(qtext,'$$%','<b>+$$%+</b>') 

但不起作用

谢谢

2 个答案:

答案 0 :(得分:0)

我认为您想要这样的东西:

update t_questions set qtext = SUBSTRING(qtext, 0, CHARINDEX('$$', qtext)) + '<b>' + SUBSTRING(qtext, CHARINDEX('$$', qtext), len(qtext)-CHARINDEX('$$', qtext)) +'</b>' where qtext like '$$%';

答案 1 :(得分:0)

提供想要加粗的部分是'$$'之后的所有内容,包括STUFF,那么使用UPDATE YourTable SET YourColumn = STUFF(YourColumn,CHARINDEX('$$',YourColumn),0,'<b>') + '</b>' WHERE YourColumn LIKE '%$$%'; 可能会更容易:

STUFF

'<b>'将在正确的位置“插入”字符串'</b>',然后您可以简单地将Select t1.*, t2.* from table1 t1 join table2 t2 on t1.id = t2.id join (select id, age from table2 group by id, age having count(*) > 1 ) t3 on t1.id = t2.id and t2.id = t3.id and t2.age = t3.age 连接到末尾。