6

WHERE在 ABAP SQL 中,我可以在比较a 子句中的字段时忽略大小写SELECT吗?

SELECT * 
FROM some_table 
WHERE field1 = variable1.

我如何比较field1忽略variable1不同的情况?

4

4 回答 4

6

Open SQL 可以使用UPPER从 ABAP 7.51开始的函数来执行此操作。

例子:

SELECT * 
FROM some_table 
WHERE UPPER( field1 ) = @variable1
INTO TABLE @DATA(internal_table).
于 2018-08-08T16:04:47.943 回答
4

根据您从中选择的表,您可能很幸运,因为 SAP 将相同的值存储在相关的匹配代码字段中,其中的值始终为大写。

否则,您可能会在底层数据库的文档中找到允许此类搜索的内容,在这种情况下,您可能会发出本机 SELECT。

例如,如果您的 SAP 系统使用 Oracle 作为底层 DB,您可以参考这篇文章:http ://www.dba-oracle.com/oracle_news/2005_5_20_great_technique_case_sensitive_text_searching.htm

于 2011-06-22T18:15:04.023 回答
2

你不能。Open SQL 不支持不区分大小写的条件。

您可以执行 mydoghasworms 建议的操作,也可以在数据选择后使用正则表达式过滤结果。

于 2011-06-29T07:48:27.370 回答
1

OpenSQL无法做到这一点 - 就像之前声明中提到的其他人一样。

但是还有一种选择:Native SQL,“上层”函数,意味着:

translate compare_value to upper case.

exec sql performing addX.
  select * FROM  INTO :workarea
   where upper("choose_column") eq :compare_value
endexec.

form addX.
  append workarea to itab.
endform.
于 2011-07-02T23:33:23.230 回答