select - SQL语句中带有VALUE运算符的ABAP初始值

标签 select abap

我有以下 SQL 语句,想知道是否可以使用 VALUE 运算符重写它以避免开头的 DATA 语句。

  DATA(lv_initial) = VALUE /scwm/guid_hu( ).
  SELECT * FROM /scwm/tu_dlv 
    WHERE lgnum     = @lv_lgnum
      AND top_hu    = @lv_initial
    INTO TABLE @DATA(lt).

也就是说,我想要类似下面的内容,它会给出错误:“字段‘VALUE’未知。[...]”,不幸的是。

  SELECT * FROM /scwm/tu_dlv
    WHERE lgnum     = @lv_lgnum
      AND top_hu    = @VALUE #( )
   INTO TABLE @DATA(lt).

这可能吗?我想摆脱 DATA 语句,因为如果重用变量,它很容易导致错误。

我在 Google 和 ABAP 关键字文档中进行了搜索,特别是“SELECT”、“VALUE, Operator”和“DATA, Operator”,但没有结果。

如有任何建议,我们将不胜感激。

亲切的问候, 斯特凡

最佳答案

据我所知,这取决于目标版本。对于 release 7.40 ,比较的右侧需要是(以及其他替代方案)

a host variable or a literal

而在 release 7.50 中,已被替换以允许

a literal, a host variable, or a host expression

扩展至host expressions应该允许您做您想做的事情,如图 in this example 所示.

关于select - SQL语句中带有VALUE运算符的ABAP初始值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44700076/

相关文章:

greatest-n-per-group - Open SQL 中每组的最大 N

oop - 如何将填充结构/表定义为 ABAP 对象中的类常量

eclipse-plugin - 如何在 Eclipse ADT 中查找字典对象的包?

mysql - 通过重用 MYSQL 中的派生字段列名来简化查询字符串

mysql - 如何在单个 select 语句中完成此操作?

mysql - 如何在MySQL中对需要不同条件的列进行查询?

c# - RFC_READ_TABLE 查询大量列后抛出 Rfcabapexception

abap - 类型池或常量类?

mysql - 如何在 MySQL 中使用 select result with like

mysql - 使用 GROUP BY 从表中选择 MAX()