2011-06-21 16 views
0

REMARKS列(データ型ntext)を含むテーブルXPTOがあります。データベースフィールドから特定のデータを取得します。

欄には、複数の行があります。

私の目標は、特定の単語(@ var1)で始まり、次のピリオド記号(@ var2)で終わる特定のテキストを持つ行だけを取得することです。

私はこのクエリを試みるが、私は唯一の特定の単語で始まるが、それが続く期間句読点(@ var2の)で終わらないフィールド検索:たとえば

を、のは、私はいくつか持っているとしましょう(私は彼が彼のガールフレンドを連れて行くのだろうか?)私はちょうどテキストのこの部分がほしいです(ジョンはパブに後で行きます)。

DECLARE @var1 VARCHAR(1000) 
DECLARE @var2 VARCHAR(1000) 
SET @var1 = 'startword' 
SET @var2 = '.' 

SELECT CHARINDEX(@var1,REMARKS), SUBSTRING (REMARKS, CHARINDEX(@var1,REMARKS) ,500), * FROM XPTO WHERE REMARKS LIKE '%' + @var1 + '%' + @var2 
+0

私は1つにあなたの2つの未登録のアカウントをマージしました。これで、あなたを助けてくれた答えの下にコメントを残すことができるようになりました。また、それを最良の解決策として受け入れることができます。 –

答えて

0

あなたにも以下試すことができます。この

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 
0

を試してみてください。

Select CHARINDEX(@var1,REMARKS), 
SUBSTRING (REMARKS, CHARINDEX(@var1,REMARKS) ,500), * 
From XPTO where REMARKS like @var1 + '%' and REMARKS like '%' + @var2 
0
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 
+0

上記のSQLコードを自分のデータベースに対してテストしました – niktrs

関連する問題