2014-01-30 117 views
-1

你好,我有兩個選擇語句,它們彼此緊接着執行。編程語言是ABAP。是否可以合併這兩個select語句以減少select語句的數量?合併兩個select語句並附加子句

SELECT * FROM (me->db_table) 
UP TO mynumber ROWS 
INTO CORRESPONDING FIELDS OF TABLE mytable 
WHERE x = y 
AND n = m 
ORDER BY (x). 

SELECT * FROM (me->db_table) 
UP TO mynumber ROWS 
APPENDING CORRESPONDING FIELDS OF TABLE mytable 
WHERE x = y 
AND n = m 
ORDER BY (x). 

在此先感謝

+3

請提供一個實際的例子,說明爲什麼你首先需要兩個'SELECT'語句。您包含的示例只是簡單地顯示兩次相同的語句。 – vwegert

+0

是的,它現在是兩次相同的語句,我想將這兩個查詢合併到一個查詢中(因爲它們是相似的,但是第一個查詢被添加到第一個查詢中)。我不認爲我需要兩個查詢,這就是我想合併的原因 – Tyzak

+1

@Tyzak所以問題是你只需要查詢中每個結果的2個? –

回答

3

是否有這兩個語句之間的任何改變x或我 - > db_table?如果沒有,根本就

SELECT * FROM (me->db_table) 
UP TO mynumber ROWS 
INTO CORRESPONDING FIELDS OF TABLE mytable 
WHERE x = y 
AND n = m 
ORDER BY (x). 

append lines of mytable to mytable. 

我不知道,如果最後一條語句發出一個語法錯誤,如果是的話,嘗試

SELECT * FROM (me->db_table) 
UP TO mynumber ROWS 
INTO CORRESPONDING FIELDS OF TABLE tmp 
WHERE x = y 
AND n = m 
ORDER BY (x). 

append lines of tmp to mytable. 
append lines of tmp to mytable. 

其中TMP應具有相同的類型mytable的。重點是,這兩個選擇是相同的,因此結果是,你將在mytable中有相同的數據兩次。