2017-01-14 6 views
0

Powebuilder에서 생성 한 쿼리를 Standard SQL로 변환하고 싶습니다. 몇 가지 점에서 의심 스럽습니다.PBSELECT 쿼리를 표준 SQL 쿼리로 변환

파워 빌더 QUERY :

SELECT 
    part.part_no , 
    part.part_id FROM part 
    WHERE :EXP1 = part.part_no OR :EXP2 = p_part_no 

내가이 쿼리를 변환하지만 변수 이해할 수 없습니다입니다 :

PBSELECT(VERSION(400) TABLE(NAME=~"part~") 
     COLUMN(NAME=~"part.part_no~") 
     COLUMN(NAME=~"part.part_id~") 
     WHERE(EXP1 =~"part.part_no~" OP =~"=~" EXP2 =~":p_part_no~")) 
     ARG(NAME = ~"p_part_no~" TYPE = string)" 

표준 SQL은 QUERY 전환 된 EXP1을, EXP2의 p_part_no & OP. 나는 파워 빌더 쿼리에 보면 는 하나의 인수가하지만 그 값이 올 곳에서 및 OP p_part_no EXP1, EXP2, 것입니다.

어떤 제안이나 도움을 주시면 감사하겠습니다.

답변

2

운영자 그래서 귀하의 경우에는 내가 변환을 기대

EXP1 = 왼쪽

EXP2 = 오른쪽을 사용 (변환) 표준 SQL

영업 이익 = 확인하십시오 pbselect는 더 비슷합니다

선택 ... 어디서 p_part_no = : p_part_no

0 당신의 주어진 pbselect 문 당신이 검색하는 데 사용할 인수가이 경우

에서

빌드 p_part_no 변환 된 SQL에서

당신은, 이것은 pbselect에없는 ... 를 a "또는"등의 연산자를 보여 그래서 당신이 다른 테스트 케이스를 혼합 할 수있을 것이라고 기대합니까?

필자는 이것을 pb로 다시 검사하지 않았지만 정답이 아닌 경우이를 수행 할 수 있습니다.

+0

우선이 대답에 대한 답변과 훌륭한 설명을 제공하기 위해 많이 감사합니다. 실제로 OP가 OR로 간주되는 OR 연산자가 없었습니다. – SOP

+0

이 문장을 설명해주십시오 COMPUTE (이름 = ~ "decode (: p_lang_cd, ~~~"01 ~~~ ", country.country_name_j, country.country_name_e) country_name ~") – SOP

+0

'decode (: p_lang_cd, '01', country.country_name_j, country.country_name_j)를 국가 이름으로 사용합니다. ': p_lang_cd'인수가''01 ''이면'country.country_name_j'를 사용하고 그렇지 않으면'country.country_name_e'를 사용합니다. –