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标准那样工作。有人有任何建议吗?

从ABAP 7.5*开始,您可以使用主机变量来满足您的要求。

请定义 lv_i lv_eq as char type。

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的更新,

您也可以直接在打开的SQL中使用常数。

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

在abap sql中,一个人可以在以下方式中使用select Query中的字符串文字。

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> st 开始。

相关内容

  • 没有找到相关文章

最新更新