2017-01-14 2 views
0

Я хочу преобразовать порожденный запрос Powebuilder в Standard Sql, я пробовал, и я это сделал, но у меня есть сомнения в нескольких точках.Преобразование запроса PBSELECT в стандартный SQL-запрос

МОЩНОСТИ СТРОИТЕЛЬ 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)" 

STANDARD SQL ПЕРЕУСТРОЕННЫХ QUERY:

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. Если я смотрю на СИЛЫ построитель запросов, то только один аргумент есть, но то, что EXP1, EXP2, p_part_no и OP, откуда приходят его значения.

Любое предложение и помощь будут оценены.

ответ

2

пожалуйста, проверьте ваш стандартный SQL (преобразованного)

Op = оператору использовать

Exp1 = левая сторона

exp2 = правая сторона

Так что в вашем случае я бы ожидать, преобразованный pbselect больше похож на

выбрать ... где p_part_no =: p_part_no

строить из вашего данного pbselect заявления

В этом случае аргумент используется для извлечения является p_part_no

В преобразованном SQL вы показываете «или» как оператор ... Это не в pbselect, так что я бы ожидал, что вы могли бы смешать ваши разные тестовые примеры?

Я не проверял это в pb, но могу сделать это, если это неправильный ответ.

+0

Прежде всего, спасибо за то, что ответили и предоставили это замечательное объяснение. На самом деле не было оператора OR, который я считал OP как OR. – SOP

+0

, пожалуйста, объясните это утверждение COMPUTE (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' is' '01'', затем используйте 'country.country_name_j', иначе используйте' country.country_name_e' –

Смежные вопросы