二维码

新人求助,sql语句like后面怎么跟变量?

976439902@qq.co发表于 2017-10-24 08:27976439902@qq.co 最后回复于 2017-10-25 10:07 [复制链接] 251 4

  1. SELECT pg0001 AS sspg0001,pg0071,pg0959,pg0960,pg0961,pg0076
  2. INTO TABLE @data(lt_a0010) FROM zvt_a0010
  3. FOR ALL ENTRIES IN @gt_k0010
  4. WHERE pg0001 LIKE gt_k0010-str_pg0001.
复制代码

编译器说要加%,但是又不像其他语言那样可以在sql语句中拼接字符串,我该怎么办啊
回复

使用道具 举报

Twilight
  1. DATA:lv_str_pg0001 TYPE string.
  2. lv_str_pg0001 = '%' && gt_k0010-str_pg0001 && '%'.

  3. SELECT pg0001 AS sspg0001
  4.        pg0071
  5.        pg0959
  6.        pg0960
  7.        pg0961
  8.        pg0076
  9. INTO TABLE lt_a0010 FROM zvt_a0010
  10. *FOR ALL ENTRIES IN gt_k0010
  11. WHERE pg0001 LIKE lv_str_pg0001.
复制代码

回复 支持 反对

使用道具 举报

976439902@qq.co
这样需要循环里面套select,感觉性能不好 啊
回复 支持 反对

使用道具 举报

Twilight
FOR ALL ENTRIES IN 嘛
你要先分析数据结构、业务逻辑是怎样的,再写代码
回复 支持 反对

使用道具 举报

976439902@qq.co
Twilight 发表于 2017-10-24 09:39
FOR ALL ENTRIES IN 嘛
你要先分析数据结构、业务逻辑是怎样的,再写代码

根据k0010表的pg0001字段的前7位取与a0010表pg0001字段前7位相同的记录,昨天我想到的不用like关键字的方法,就是把所有k0010表的pg0001前7位加*放到一个range表,这样和for all entries in效果一致,并且测试通过了
回复 支持 反对

使用道具 举报

快速回帖

本版积分规则
您需要登录后才可以回帖 登录 | 注册有礼

快速回复 返回顶部 返回列表