2011-01-05 14 views
0

非常に同じ構造の10個のテーブルで使用できるスクリプトを作成する必要があります。列がある各表の2つの列を参照する必要があります searchitem feed 一致するフィードフィールド内の各検索項目を検索し、フィールドフィードが含まれているかどうかを確認する必要があります。私はcharindexを使用することを考えましたが、これが適切であるかどうか、それぞれのレコードに対してどのように行うのかについてはわかりません。SQLサーバテーブルフィールド内の用語の検索

SELECT CHARINDEX(searchitem, feed) 
FROM Production 
WHERE not searchitem is null. 

だけ明確にするために、私は唯一のsearchitem値は、そのテーブル内のすべてのレコードのための飼料価値に

編集でどこのテーブルを検索するという意味、一度に一つのテーブルに検索を適用する必要があります...

select id,searchterm,feed, 
(Case 
    When charindex(production.searchterm,production.feed) >= '1' then 
    'yes' 
    else 
    'no' 
    END 
) as Matchfound 
from production 
where production.searchterm is not null 

検索語=カイシャ

フィード= Aロハ戸田SE assustouジェンティーレッサアンドレéアルゴンでçをGAR行うCA ú jo。時代のOのjeito、おそらくそのようなPOIの戸田ホラAペソアDOカイシャPEDIA 5minutos ... Oiiiiiiiiiiiiii

+0

希望の結果は何ですか?一致する行または各テーブルのはい/いいえ? –

+0

同じ値の10個のテーブルの列を検索したいですか? 10のいずれかに表示されている場合、または10のいずれかに表示されている場合は、はい/いいえの回答を得ますか? – Beth

+0

はい、id、searchterm、feed、yes/noを表示し、1つのテーブルのみを検索する確認です。 – vbNewbie

答えて

3
SELECT Production.*, (
    CASE 
    WHEN CHARINDEX(Production.searchitem,Production.feed) >= 1 THEN 'Yes' 
    ELSE 'No' 
    END 
) AS MatchFound 
FROM Production 
WHERE Production.searchitem IS NOT NULL 

何か?その列に一致するものが見つかった場合は、末尾に(MatchFound)フラグを付ける列を追加します(YesまたはNo)。

+0

'CHARINDEX( 'abc'、 'xyz')'はNULLではない0です。一方のオペランドが 'NULL'の場合にのみ' NULL'を返します。 –

+0

@Martin:Touché。 DBに対してテストを行ったことがあります。どちらかの式がNULLの場合、値はNULLです。もし見つからなければ、それは0です。それを今変更すると、良いキャッチです。 –

+0

選択PRDとは何ですか?* ,? for ...私はそれが有効なビルド関数名ではありません。* outを残すことです。 – vbNewbie

関連する問題