gpt4 book ai didi

sql-server - 删除存储过程中两个不同单词的第一个实例的最简单方法

转载 作者:行者123 更新时间:2023-12-05 01:32:39 25 4
gpt4 key购买 nike

我有一个列有一些 <p>标签如:

<p>test  test 2</p>    <p>this is a test 2</p>    <p>this is a test 3</p>

始终删除第一个 <p> 的最佳方法是什么?与相应的</p> .

这样结果就变成了:

test test 2 <p> this is a test 2 </p> <p> this is a test 3</p>

它应该适用于任何情况,甚至 <p>1</p>它应该只产生 1 .

我尝试使用 CHARINDEXSUBSTRING但我最终得到了很多硬编码的#:(。

最佳答案

它很丑陋,但它应该可以工作。该代码基本上找到了 </p> 的第一个实例并把一切都放在它的右边。它还获取它左侧的所有内容,替换第一个 <p>它找到了。

DECLARE @x nvarchar(100)
SET @x = '<p>test test 1</p> <p>this is a test 2</p> <p>this is a test 3</p>'

SELECT REPLACE(LEFT(@x, charindex('</p>', @x) - 1), '<p>', '') +
RIGHT(@x, len(@x) - charindex('</p>', @x) - 3)

SET @x = '<p>1</p>'

SELECT REPLACE(LEFT(@x, charindex('</p>', @x) - 1), '<p>', '') +
RIGHT(@x, len(@x) - charindex('</p>', @x) - 3)

这应该返回:

test test 1 <p>this is a test 2</p> <p>this is a test 3</p>

1

编辑:

基于 this question here ,怎么样:

SELECT STUFF(STUFF(@x, CHARINDEX('</p>', @x), 4, ''), 
CHARINDEX('<p>', @x), 3, '')

关于sql-server - 删除存储过程中两个不同单词的第一个实例的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13253233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com