ABAP SQL フィールド リスト内の特定の文字列値「mr joe doe」を「JOE」に変更する正しい式は何でしょうか?
正解: C
説明
ABAP SQLフィールドリスト内の特定の文字列値「mr joe doe」を「JOE」に変更する正しい式は次のとおりです。
C: テーブル dbtabl のフィールド Of1、substring(upper('mr joe doe')、4、3) を f2_sub_up、f3、... として選択します。
この式では、文字列12 に対して次の SQL 関数を使用します。
upper: この関数は、文字列内のすべての小文字を大文字に変換します。たとえば、upper('mr joe doe') は 'MR JOE DOE' を返します。
substring: この関数は、指定された位置から始まり、指定された長さの文字列の部分文字列を返します。たとえば、substring('MR JOE DOE', 4, 3) は 'JOE' を返します。
AS: このキーワードは、フィールドリスト内のフィールドまたは式に別名または一時的な名前を割り当てます。たとえば、AS f2_sub_up は、式 substring(upper('mr joe doe'), 4, に名前 f2_sub_up を割り当てます。
3)。
以下のいずれも実行できません。
A: テーブル dbtabl のフィールド Of1、upper(left( 'mr joe doe'、6)) を f2_up_left、f3、... として選択します。
この式では、文字列に対して間違った SQL 関数を使用して、目的の結果を取得しています。left 関数は、末尾の空白を無視して、指定された長さの文字列の左端の文字を返します。たとえば、left( 'mr joe doe', 6) は 'mr joe' を返します。この結果に upper 関数を適用すると 'MR JOE' が返されますが、これは 'JOE' と同じではありません。
B: SELECT FROM TABLE dbtabl FIELDS Of1, left(lower(substring( 'mr joe doe', 4, 3)), 3) AS f2_left_lo_sub, f3,...: この式は、文字列に対して不必要で誤った SQL 関数を使用して、目的の結果を取得しています。lower 関数は、文字列内のすべての大文字を小文字に変換します。たとえば、lower(substring( 'mr joe doe', 4, 3)) は 'joe' を返します。同じ長さのこの結果に left 関数を適用すると、再び 'joe' が返されますが、これは 'JOE' と同じではありません。
D: SELECT FROM TABLE dbtabl FIELDS Of1, substring(lower(upper( 'mr joe doe' ) ), 4, 3) AS f2_sub_lo_up, f3,...: この式は、文字列に対して不必要で不適切な SQL 関数を使用して、目的の結果を得ています。lower 関数は文字列内のすべての大文字を小文字に変換し、upper 関数は文字列内のすべての小文字を大文字に変換します。両方の関数を同じ文字列に適用すると、互いの効果を打ち消し、元の文字列が返されます。たとえば、lower(upper( 'mr joe doe' ) ) は 'mr joe doe' を返します。この結果に substring 関数を適用すると、次の結果が返されます。
「joe」は「JOE」と同じではありません。
参照: 1: 文字列用 SQL 関数 - ABAP キーワード ドキュメント - SAP オンライン ヘルプ 2: sql_func - 文字列関数 - ABAP キーワード ドキュメント - SAP オンライン ヘルプ