CONTAINSTABLE은 검색 조건에서 테이블 열과 함께 작업 할 수 없습니다. 당신은 그것을 좋아 할 수 있습니다 :
IF OBJECT_ID(N'##temp') IS NOT NULL DROP TABLE ##temp
CREATE TABLE ##temp (
Suggestion nvarchar(max),
InventoryRank int
)
DECLARE @sql nvarchar(max)
SELECT @sql = (
SELECT N'INSERT INTO ##temp SELECT '''+Suggestion+''' as Suggestion, COUNT (*) as InventoryRank FROM CONTAINSTABLE(searched_table,searched_column,'''+Suggestion+''');'
FROM aTable
FOR XML PATH('')
)
--PRINT(@sql)
EXEC sp_executesql @sql
SELECT *
FROM ##temp
인쇄하면 쿼리 줄 것이다 :
DECLARE @search nvarchar(4000)
SELECT @search = STUFF((
SELECT '*" or "' + Suggestion
FROM aTable
FOR XML PATH('')
),1,6,'') +'*"'
--That will give you string like "sug1*" or "sug2*" or "sug3*" to search
--You can make whatever you need string. F.e. "sug1" or "sug2" or "sug3"
SELECT COUNT (*)
FROM CONTAINSTABLE(searched_table,searched_column,@search)
편집이 Suggestion
마다 다른 InventoryRank
, 당신은 동적 SQL 및 임시 테이블을 사용할 수 있습니다 필요한 경우
:
INSERT INTO ##temp SELECT 'sug1' as Suggestion, COUNT (*) as InventoryRank FROM CONTAINSTABLE(searched_table,searched_column,'sug1');
INSERT INTO ##temp SELECT 'sug2' as Suggestion, COUNT (*) as InventoryRank FROM CONTAINSTABLE(searched_table,searched_column,'sug2');
그래서 모든 루프를 돌릴 WHILE 루프 또는 커서가 필요하지 않습니다. aTable
'제안 제안 선택'은 하나 또는 여러 행을 반환합니까? – wdosanjos
@wdosanjos : 복수 행을 반환합니다. – Mohsen