Sql 从数据库字段检索特定数据
我有一个表XPTO,其中包含列备注(数据类型为ntext) 在备注栏上,我有几行 我的目标是只检索具有以特定单词(@var1)开头并以下一个句点(@var2)结尾的特定文本的行 我尝试此查询,但只检索以特定单词开头但不以以下句点符号(@var2)结尾的字段: 例如,假设我有几行显示文本(嗨,劳拉!约翰稍后会去酒吧。他会带他的女朋友吗?),我只想要这部分文本(约翰稍后会去酒吧) 试试这个Sql 从数据库字段检索特定数据,sql,sql-server,Sql,Sql Server,我有一个表XPTO,其中包含列备注(数据类型为ntext) 在备注栏上,我有几行 我的目标是只检索具有以特定单词(@var1)开头并以下一个句点(@var2)结尾的特定文本的行 我尝试此查询,但只检索以特定单词开头但不以以下句点符号(@var2)结尾的字段: 例如,假设我有几行显示文本(嗨,劳拉!约翰稍后会去酒吧。他会带他的女朋友吗?),我只想要这部分文本(约翰稍后会去酒吧) 试试这个 declare @string varchar(max) declare @var1 varchar(1000
declare @string varchar(max)
declare @var1 varchar(1000)
declare @var2 varchar(1000)
set @var1 = 'john'
set @var2 = '.'
set @string='hi laura! john will go to the pub later. will he take is girlfriend?'
select SUBSTRING(string,1,charindex(@var2,string)-1) from
(
select SUBSTRING(@string,CHARINDEX(@var1,@string),len(@string )) as string
) as t
你也可以在下面试试
Select CHARINDEX(@var1,REMARKS),
SUBSTRING (REMARKS, CHARINDEX(@var1,REMARKS) ,500), *
From XPTO where REMARKS like @var1 + '%' and REMARKS like '%' + @var2
我已将你的两个未注册帐户合并为一个。您现在应该能够在帮助您的答案下留下评论,并将其作为最佳解决方案。
Select CHARINDEX(@var1,REMARKS),
SUBSTRING (REMARKS, CHARINDEX(@var1,REMARKS) ,500), *
From XPTO where REMARKS like @var1 + '%' and REMARKS like '%' + @var2
DECLARE @var1 VARCHAR(1000)
DECLARE @var2 VARCHAR(10)
SET @var1 = 'string_to_be_found'
SET @var2 = 'end_string'
SELECT SUBSTRING(
REMARKS
,CHARINDEX(@var1,REMARKS)
, CHARINDEX(@var2,REMARKS,CHARINDEX(@var1,REMARKS))+ LEN(@var2) - CHARINDEX(@var1,REMARKS)
)
FROM XPTO
WHERE CHARINDEX(@var1,REMARKS)>0
AND CHARINDEX(@var2,REMARKS,CHARINDEX(@var1,REMARKS))>0