어떻게하면이 두 문장을 결합 할 수 있습니까? 기본적으로 검색입니다. 사용자가 이름, 회사 또는 메모를 검색 할 수 있기를 바랍니다. Notes는 act라는 다른 테이블에 있습니다. CID의 외래 키가 있습니다. 채워진 내용과 일치하는 결과 만 반환하고 싶습니다. 따라서 Name : Bob Notes : Golf에 대한 검색은 notes에서 골프를 가진 모든 사용자를 반환하지는 않지만 bob이라는 이름의 사람 만 반환하고 notes 필드에서 골프를가집니다.SQL 검색 문 만들기 문제
Notes가 1 행 이상을 리턴하면 첫 번째 명령문에서 저를 사용할 수있는 기회를 파괴합니다.
나는 SQL-서버에게 2005 감사
을 사용하고1 차 진술 :
SELECT DISTINCT CID, Name, Comp, Email
From Con
Where (Name IS NULL OR Name LIKE '%' + @name + '%')
AND (Comp IS NULL or Comp LIKE '%' + @comp + '%')
2 차 진술 :
If @notes <> ''
Begin
SET @newid =
(
Select CID
From Act
Where Note LIKE '%' + @notes + '%'
)
Select DISTINCT CID, Name, Comp, Email
From Contacts c
Where (CID= @newid)
End
접근 방법 의존하지 않는 상관 관계가있는 하위 쿼리에서 성능이 향상 될 수 있습니다. – Shawn