2011-01-05 4 views
0

동일한 구조의 10 개 테이블에서 사용할 수있는 스크립트를 만들어야합니다. 열이있는 각 테이블에서 두 열을 참조해야합니다. 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 

SEARCHTERM = caixa

피드 = A 로자 도다 SE assustou 젠티 레자 안드레 é 아르곤에 ç을 가르 않는 ca를 a ú jo. 시대의 오 jeito, 관심 장소 토다 호라 페소 아 Oiiiiiiiiiiiiii ... caixa 피디아 5minutos이 아마도 같은

+0

원하는 결과는 무엇입니까? 일치하는 행 (들) 또는 각 테이블에 대한 예/아니오? –

+0

동일한 값에 대해 10 개 테이블의 열을 검색 하시겠습니까? 10 개 중 하나 또는 10 개 중 각각에 나타나면 예/아니오 답을 얻으시겠습니까? – Beth

+0

예, 단지 id, searchterm, feed, yes/no를 표시하고 하나의 표만 검색합니다. – 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 

뭔가를합니까? 해당 열에서 일치 항목 (Yes 또는 No)이 발견되면 마지막에 열 (MatchFound)을 추가합니다.

+0

'CHARINDEX ('abc', 'xyz')'는 'NULL'이 아닌 0입니다. 피연산자 중 하나가 'NULL'인 경우에만 'NULL'을 반환합니다. –

+0

@Martin : Touché. DB에 대한 테스트를했는데 두 표현식 중 하나가 NULL이면 값이 NULL 인 것을 잊어 버렸습니다. 찾지 못하면 0입니다. 지금 바꾸면 좋은 잡을 수 있습니다. –

+0

PRDuction이란 무엇입니까? * ,? for ... 나는 그것이 유효한 * 함수명으로 만들어지지 않는다. * out을 남겨둔다. – vbNewbie

관련 문제