프로시저 IF문 사용할떄 의문인데요.
SELECT * FROM TEST WHERE TXT = 'TEST'
IF( @A = 'A')
AND TXT_A = 'A'
END
AND TXT_B = 'TTT'
이런식으로 막 코딩 한다고 했을때 문법상 틀린점이 안보이는데 SQL 실행시 오류가 납니다.
해당 쿼리를 풀어보면
TEST 테이블에서 TXT 필드 값이 TEST를 찾고
그다음 매개변수로 받은 @A 값이 'A' 라면 AND 절을 추가하여 TXT_A 필드에서 'A' 를 조회 하고
아니면 그냥 건너 뛰라는 단순한 쿼리 인데 이게 SQL에서 안먹습니다.
인터넷 찾아봐도 이거에 대한 답이 없고요.
왜 안되는지 이해가 안되네요... 도와주십시요..
Comment 3
-
나는짱이야
2014.07.07 14:44
-
Hisory
2014.07.07 14:50
IF( @A = 'A') Begin
~~~~~~
END
Else Begin
~~~~~~~~~~~~~
End
혹시나 해서... 아래와 같은경우는 사용안됩니다
SELECT * FROM TEST WHERE TXT = 'TEST'
IF( @A = 'A')
AND TXT_A = 'A'
END
AND TXT_B = 'TTT'
이런건 단순히...
IF( @A = 'A') BEGIN
SELECT * FROM TEST WHERE TXT = 'TEST'
AND TXT_A = 'A'
AND TXT_B = 'TTT'
END
ELSE BEGIN
IF( @A = 'A') BEGIN
SELECT * FROM TEST WHERE TXT = 'TEST'
AND TXT_B = 'TTT'
END
이렇게 해야됩니다
-
개발자_ver
2014.07.07 15:07
WHERE 절 다음으로는 IF문을 걸어서 사용할순 없다는거네요??
무조건 전체 쿼리를 IF 안에 써줘야만 사용할수 있다는 걸로 해석이 되네요.
근데 왜 안되는거죠?? 허허.. ㅠㅠ
begin은 사용하셨나요?