質問

構築を行ってい示唆タグシステム(音声の怪しいパス文字列のdbがあれば、試合での返送するタグです。また複製タグはこのタグはっきりしなかったので返されます。だってタグを追加して、タイピング"私たち"になっていてウェブのための第二の時間として。

でも、そうで使用すれば問題ありません。を送りたいのは、現在のタグを使用しない()を除去する重複している。以下は、SPコード:

SELECT  TOP 1 t.vTagName As vTagName
FROM        Tags t
WHERE       t.vTagName LIKE @vTagName+'%'
AND         t.nTagPortalId = @nPortalId
AND         t.vTagName NOT IN(@vCurrentTags)
ORDER BY    vTagName ASC

この取得の経過:

EXEC GetTagSuggest 'We','Web,Print,Design,Advertising,Revenue'

このクエリに対する応答はvTagName=。当然、これは正しい結果になることは間違いありvTagNameのような"しなの"Webなど---。"..

感謝。

役に立ちましたか?

解決

のINステートメントは、そのような仕事をしません。

あなたがする必要がありますどのような

であります
t.vTagName not in ('Web','Print','Design','Advertising','Revenue')

その場合の一つの変数でそれを持つことになるではない仕事ます。

他のヒント

あなたは、文字列を分割、または動的SQLにSQL文全体を変換する必要があります。

EDITます:

他の例あたりの変数アウト

分割、または動的SQLを行います。

これはベストプラクティスではありませんの、しかし、あなたのアイデアを与えることだけである。

DECLARE @sql nvarchar(max) = 'SELECT  TOP 1 t.vTagName As vTagName '
SELECT @sql = @sql + 'FROM  Tags t '
SELECT @sql = @sql + 'WHERE t.vTagName LIKE ' + @vTagName + '% '
SELECT @sql = @sql + 'AND   t.nTagPortalId = ' + @nPortalId + ' '
SELECT @sql = @sql + 'AND   t.vTagName NOT IN(' + @vCurrentTags + ') '
SELECT @sql = @sql + 'ORDER BY  vTagName ASC'

EXEC sp_executesql @sql, @vTagName, @nPortalId, @vCurrentTags
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top