인라인 테이블 내부의 논리가 SQL의 함수를 평가하고 해당 논리에 기반한 Containstable을 반환하면 IF else를 사용하려고합니다. 하지만 IF 다른 IF 블록 구문 오류가 있습니다. 도와 주셔서 감사합니다. 왜냐하면 나는 elsest 문장을 사용하는 것에 의지해야만하는 Containstable의 컬럼을 매개 변수화할 수 없기 때문이다. 여기에 코드가 있습니다. 감사.Help! 만약 그렇지 않으면 Else IF 논리를 반환합니다. Containsable 선택
내가 키워드 'IF'에 가까운 17 잘못된 구문은
메시지 156, 수준 15, 상태 1, 프로 시저 FullTextSearch, 라인
을 얻고있다. 모든ALTER FUNCTION [dbo].[FullTextSearch]
(
@Columns nvarchar(100), @SearchPhrase nvarchar(100)
)
RETURNS TABLE
AS
RETURN
IF (@Columns='Title')
BEGIN
SELECT *
from projects as P inner join
containstable(PROJECTS, Title, @SearchPhrase) as K
on P.project_id = K.[KEY]
END
ELSE IF (@Columns='Project_Details')
BEGIN
SELECT *
from projects as P inner join
containstable(PROJECTS, Project_Details, @SearchPhrase) as K
on P.project_id = K.[KEY]
END
ELSE IF (@Columns='Contact_Info')
BEGIN
SELECT *
from projects as P inner join
containstable(PROJECTS, Contact_Info, @SearchPhrase) as K
on P.project_id = K.[KEY]
END
ELSE IF (@Columns='Project_Description')
BEGIN
SELECT *
from projects as P inner join
containstable(PROJECTS, Project_Description, @SearchPhrase) as K
on P.project_id = K.[KEY]
END
ELSE -- (@Columns='All')
BEGIN
SELECT *
from projects as P inner join
containstable(PROJECTS, (Title, Project_Details, Contact_Info, Project_Description), @SearchPhrase) as K
on P.project_id = K.[KEY]
END
이 쿼리로 정확히 무엇을 하려는지 궁금합니다. –
나는 C#에서 asp.net의 LinqTOSQL 레이어와 함께 검색 인터페이스를 가지고 있지만 LINQ to SQL은 훌륭하지만 전체 텍스트 검색 기능을 지원하지 않으므로 프로 시저 또는 테이블 값 함수를 사용하는 다른 방법은 없습니다. 나는 래퍼/확장 기능을 사용하는 것에 대해 읽었지만 이것을 결정했다. – stevenjmyu
필드에서 문자열을 검색하려고합니다. 어떤 분야가 될 수 있는지, 아니면 잠재적으로 모든 분야에 적용될 수 있는지 알고 있습니까? –