我找到了如何删除某些字符后,但是如何在SQL DEV 2012中的某些单词后删除?
假设我有一个名为MyTable的表,此列是MyTextColumn,其中包含
我的名字是Peter the Developer,这部分需要删除。
所以当它找到'Peter the Developer'时,删除Peter the Developer及其后的其余内容,唯一剩下的就是'我的名字是'
由于
UPDATE MyTable
SET MyText = LEFT(MyText, CHARINDEX(';', MyText) - 1)
WHERE CHARINDEX(';', MyText) > 0
更新:
由于我的问题是删除意义更新,这是我从下面的回复中创建的,以使其工作。
update myTable
set myTextColumn = SUBSTRING(myTextColumn , 0 , CHARINDEX('Peter the developer', myTextColumn, 0))
where ID = 2
答案 0 :(得分:1)
实施例
declare @Seed nvarchar(32) = 'is '
declare @String nvarchar(128) = 'My Name is Peter'
select Left(@String,PATINDEX('%'+@Seed+'%',@String)+len(@seed))
你的案子'
declare @Seed nvarchar(32) = ';'
UPDATE MyTable
SET MyText = Left(MyText,PATINDEX('%'+@Seed+'%',MyText)+len(@seed))
WHERE PATINDEX('%'+@Seed+'%',MyText) > 0
答案 1 :(得分:1)
DECLARE @text varchar(max) = 'My name is peter'
UPDATE MyTable
SET MyText = SUBSTRING(@text,0,CHARINDEX('peter',@text,0))
这样的事情应该有所帮助
输出将是
我的名字是
答案 2 :(得分:1)
您可以使用charindex查找多个字符,所以:
select left(MyTextColumn,charindex('Peter the Developer',MyTextColumn,1)-1
from
MyTable
答案 3 :(得分:0)
不完全确定预期结果是什么
如果您希望删除所有内容并保持"我的姓名为",您可以按以下方式执行
declare @Word varchar(100)='My Name is Peter the Developer this part needs to be removed'
declare @Match varchar(100)='Peter the Developer'
SELECT SUBSTRING(@Word , 0 , CHARINDEX(@Match, @Word, 0))
如果你需要保持"我的名字是Peter the Developer"
declare @Word varchar(100)='My Name is Peter the Developer this part needs to be removed'
declare @Match varchar(100)='Peter the Developer'
declare @len int
set @len = LEN(@Match)
SELECT SUBSTRING(@Word , 0 , CHARINDEX(@Match, @Word, 0)+@len)