ABAP OpenSQL中的文字?

时间:2017-12-22 09:40:28

标签: sap abap opensql

在SQL中,通常可以在select语句中使用文字,例如像这样

SELECT 'I', 'EQ', table.alev_uuid
  FROM table

有没有机会在ABAP SQL查询中执行此操作?

到目前为止我尝试过的是:

DATA lt_aldf TYPE RANGE OF cam_pw_stat-alev_uuid .

DATA lv_i type string value 'I'.
DATA lv_eq type string value 'EQ'.


    SELECT lv_i lv_eq alev~alev_uuid
      FROM cam_tool AS tool INNER JOIN
           cam_alev AS alev ON tool~tool_uuid = alev~tool_uuid
      INTO TABLE lt_aldf
      WHERE tool_access = /a1sspc/if_cam_tool=>gc_tool_definition-hdb-class AND
            tool~active = abap_true AND
            alev~active = abap_true.

但它不像通常的SQL标准那样工作。有没有人有任何建议?

2 个答案:

答案 0 :(得分:6)

从ABAP 7.5 *开始,您可以使用Host Variables来满足您的要求。

请将 lv_i lv_eq 定义为字符类型。

data lv_i type char1 value 'I'.
data lv_eq type char2 value 'EQ'.

我从 T001 中选择了我自己。它工作得很完美。

data:
  lr_t_bukrs type range of bukrs.

select @lv_i, @lv_eq, bukrs from t001 into table @lr_t_bukrs up to 10 rows.

从@Jagger更新,

您也可以直接在OPEN SQL中使用常量。

select 'I', 'EQ', bukrs from t001 into table @lr_t_bukrs up to 10 rows.

答案 1 :(得分:-2)

在ABAP SQL中,可以通过以下方式在SELECT查询中使用字符串文字。

DATA : li_t001w TYPE STANDARD TABLE OF t001w.
DATA : lv_name TYPE name1 VALUE 'ST%'.

SELECT *
FROM t001w
INTO TABLE li_t001w
WHERE  name1 like lv_name.

上面的示例将返回 T001w 中的表格条目,其中 name1 字段值以 ST 开头。