2017-08-03 6 views
0

に一致する私は、SQL Serverのフルテキスト検索を使用して、私のようなクエリ持ちます:私は必要なもの全文検索複数の列は、どの列

SELECT [Column 12] AS Column_12 , 
     [Column 0] AS Column_0 , 
     [Column 13] AS Column_13 , 
     [Column 3] AS Column_3 , 
     [Column 4] AS Column_4 , 
     [Column 14] AS Column_14 , 
     [Column 5] AS Column_5 , 
     [Column 2] AS Column_2 
FROM dbo.allCountries 
WHERE CONTAINS (([Column 12], [Column 0], [Column 13], [Column 3], 
     [Column 4], [Column 14], [Column 5], [Column 2]), @Location) 

を検索値に一致したどの列を取得することです。検索が複数の列で一致する場合は、その名前またはインデックスを取得する必要があります。あなたの要件に基づいて

+0

を返します。 FullText、あなたが持っている構造では不可能なことを聞​​いています....列をMulti-JoinスタイルテーブルにUnPivotし、必要な情報を取得する必要があります – GoldBishop

答えて

0

select id, [column], value 
from (
    SELECT [id] 
     ,[column 0],[column 1] 
     ,[column 2],[column 3] 
     ,[column 4],[column 5] 
    FROM [dbo].[allcountries] 
    where contains (*, @location) 
) tmp UNPIVOT (
    value for 
    [column] in ([column 0],[column 1],[column 2],[column 3],[column 4],[column 5]) 
) up 
where value like '%' + @location + '%' 

これはさえずにid(アイデンティティ、PK)フィールド、column名([コラム#])、および値検索(@location)

関連する問題