2017-01-14 67 views
0

我想將Powebuilder生成的查詢轉換爲標準Sql,我試過了,但是我做了,但是我有幾點疑問。將PBSELECT查詢轉換爲標準SQL查詢

POWER BUILDER QUERY:

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變換後查詢:

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

我轉換此查詢,但我無法理解的變量: EXP1,EXP2 p_part_no OP。& 如果我期待在POWER BUILDER查詢,則只有一個參數是有,但又是什麼EXP1EXP2p_part_noOP從它的價值從哪裏來。

任何建議和幫助將不勝感激。

回答

2

請檢查你的標準SQL(轉換)

OP =操作員使用

EXP1 =左側

EXP2 =右側

所以你的情況我期望轉換pbselect更像

select ... where p_part_no =:p_part_no

0從給定的pbselect聲明

在這種情況下,你使用檢索說法是

構建p_part_no

在轉換後的SQL你展示「或」運算符... 這不是在pbselect,所以我希望你可以混合你的不同測試用例?

我沒有在pb中檢查過,但是如果這不是正確的答案,可以這樣做。

+0

首先thanx很多回答和提供這個偉大的解釋。其實沒有OR運算符,我認爲OP是OR。 – SOP

+0

請解釋此語句COMPUTER(NAME =〜「decode(:p_lang_cd,~~~」01 ~~~「,country.country_name_j,country.country_name_e)as country_name〜」) – SOP

+0

'decode(:p_lang_cd,'01', country.country_name_j,country.country_name_e)as country_name' 這意味着如果參數':p_lang_cd'爲''01''則使用'country.country_name_j',否則使用'country.country_name_e' –