0

IN句とLIKEでSQL Expressのデータを選択したいのですが、行が返されません。私のコードはここにあります:

SELECT        PointId, PointTitleId, PointTitleName, PointTitleContentText
FROM          PointsTitlesData
WHERE        (PointTitleContentText LIKE '%' + @SearchingClause + '%') 
             AND (PointId IN ('2','3'))

上記のコードはデータを返しませんが、LIKE コードのみを使用するとデータが返されます。

SELECT        PointId, PointTitleId, PointTitleName, PointTitleContentText
FROM          PointsTitlesData
WHERE        (PointTitleContentText LIKE '%' + @SearchingClause + '%')

IN と LIKE の両方を使用するにはどうすればよいですか? ありがとう。

4

2 に答える 2

1

以下のスクリプトでシナリオを再現しようとしました

Declare @SearchingClause nvarchar(20);

Create table PointsTitlesData (Pointid int, PointTitleContentText nvarchar(20));

insert into PointsTitlesData (Pointid, PointTitleContentText)
values ( 1, 'aaamypoint1aaa'), (2, 'bbbmypoint2bbb'),(3,'cccmypoint3ccc');

Set @SearchingClause = 'mypoint2';

SELECT        PointId, PointTitleContentText 
FROM          PointsTitlesData 
WHERE        (PointTitleContentText LIKE '%' + @SearchingClause + '%')  
         AND (PointId IN ('2','3')) 

-- above code don't return any data but when i use only LIKE code return data.

SELECT        PointId, PointTitleContentText 
FROM          PointsTitlesData 
WHERE        (PointTitleContentText LIKE '%' + @SearchingClause + '%') 

両方のクエリの結果が得られたので、データに問題があるようです。やってみました

SELECT PointId from PointsTitlesData where ((PointId = 2) or (PointId = 3))

データがあることを確認します。

よろしくジュード

于 2012-07-11T16:48:09.553 に答える
0

おそらく引用符を削除します:

'2','3' は 2,3 でなければなりません

于 2012-07-11T12:06:21.293 に答える