Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从数据库字段检索特定数据_Sql_Sql Server - Fatal编程技术网

Sql 从数据库字段检索特定数据

Sql 从数据库字段检索特定数据,sql,sql-server,Sql,Sql Server,我有一个表XPTO,其中包含列备注(数据类型为ntext) 在备注栏上,我有几行 我的目标是只检索具有以特定单词(@var1)开头并以下一个句点(@var2)结尾的特定文本的行 我尝试此查询,但只检索以特定单词开头但不以以下句点符号(@var2)结尾的字段: 例如,假设我有几行显示文本(嗨,劳拉!约翰稍后会去酒吧。他会带他的女朋友吗?),我只想要这部分文本(约翰稍后会去酒吧) 试试这个 declare @string varchar(max) declare @var1 varchar(1000

我有一个表XPTO,其中包含列备注(数据类型为ntext)

在备注栏上,我有几行

我的目标是只检索具有以特定单词(@var1)开头并以下一个句点(@var2)结尾的特定文本的行

我尝试此查询,但只检索以特定单词开头但不以以下句点符号(@var2)结尾的字段:

例如,假设我有几行显示文本(嗨,劳拉!约翰稍后会去酒吧。他会带他的女朋友吗?),我只想要这部分文本(约翰稍后会去酒吧)

试试这个

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