2014-02-08 1 views
0

같은 변수를 사용하여 db 2 sp 비교하려면 노력하고 있지만 그것은 항상 진술의 else 부분에 가서 누군가가 여기에 구문을 수정할 수 있습니다. 코드다른 변수를 비교하는 경우 db2 저장 프로 시저

do 
    IF(@variable like '%abc') THEN 
set @anotherVariable='abc'; 
    ELSEIF (@variable like '%def') THEN 
set @anotherVariable='def'; 
    ELSEIF (@variable like '%def') THEN 
set @anotherVariable='def'; 
    ELSE 
set @anotherVariable='xyz'; 
    END IF; 
END FOR; 

이 코드는 쿼리는 항상 (? 잘못된 구문을)하지만 내 비교가 작동하지 않는 경우, 1 개 값을 반환은 일치 할 수 있었다 결코 것처럼, 항상 다른 마지막으로 이동 커서의 일부입니다. 나는 가치가 있지만 그 방식으로 비교하지 알지 ... 감사합니다

+0

변수의 샘플 값은 무엇입니까? (공백 포함) – WarrenT

답변

0

당신은 SQL - PL 코드를 쓰고 있습니까? 변수는 이름 옆에 직접 참조되므로 '@'기호가 앞에 붙지 않습니다.

또 다른 것은 쿼리 외부에서 like 연산자를 사용하고 있다는 것입니다. 'Like'는 함수가 아니며 술어입니다. http://pic.dhe.ibm.com/infocenter/db2luw/v10r5/topic/com.ibm.db2.luw.sql.ref.doc/doc/r0000751.html

대신 'select'에 'case'를 사용하여 해당 값을 반환 할 수 있습니다. 그런 식으로 'if-else'를 할 필요가 없습니다. http://pic.dhe.ibm.com/infocenter/db2luw/v10r5/topic/com.ibm.db2.luw.sql.ref.doc/doc/r0023458.html

+0

예, 쿼리를 변경하고 사례 문을 대신 사용했습니다 ... 이전에 생각했지만 어떤 이유로 커서는 커서를 사용하지 않았습니다. 감사합니다. – user1063108

관련 문제