2012-09-13 148 views
3

這就是問題所在。有沒有捷徑,或者我應該在桌旁循環檢查?如何檢查內部表是否包含ABAP中的特定值

我的意思是我使用的內部表,我想檢查一個值是否包含在內部表的一個字段,我不想循環表來找到值。 (如果可能的話)

回答

12

要檢查特定的值,而不做一個循環或轉移值到工作區,你可以使用READ語句加入TRANSPORTING NO FIELDS像這樣:

READ TABLE itab WITH KEY FIELD = 'X' TRANSPORTING NO FIELDS. 
IF SY-SUBRC = 0. 
    "Read was successful. 
ENDIF. 
+0

是的!謝謝。 – Mtok

+2

請記住,您可以(也可能應該)使用二進制搜索來加快速度。 –

0

塞拉姆,

如果你想在你的算法使用的循環,那麼你可以使用這樣的事情:

LOOP ITAB WHERE FIELD = 'X'. 

"code sample 

ENDLOOP. 

如果你不打算使用循環在你的代碼中,那麼我不認爲有一個特定的方法來檢查itab中的特定值。

希望它有幫助。

塔拉

+0

感謝,但我需要沒有循環:) – Mtok

+0

正如在其他答案中提到的,這是不正確的。您可以檢查沒有循環的記錄的存在。 –

+0

用循環搜索很慢,不要使用它。 – tomdemuyt

相關問題