「SAP ABAP」OPEN SQLWHERE语句大全
Posted ThundersArk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了「SAP ABAP」OPEN SQLWHERE语句大全相关的知识,希望对你有一定的参考价值。
💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言ABAP,SQL进行任务的完成,对SAP企业管理系统,SAP ABAP开发和数据库具有较深入的研究。
💅文章概要: 在本节内容中,我们将继续学习ABAP OPEN SQL的知识,今天带来的内容是子查询在OPEN SQL中的应用。子查询可以帮助我们在不知道某些具体数据的情况下查询到我们想要的结果,是经常使用的重点语句之一。
🤟每日一言: 永远年轻,永远热泪盈眶!
目录
前言
在本节内容中,我们将继续学习ABAP OPEN SQL的知识,今天带来的内容是子查询在OPEN SQL中的应用。子查询可以帮助我们在不知道某些具体数据的情况下查询到我们想要的结果,是经常使用的重点语句之一。
数据库表准备
本文所有案例都是基于数据库表SFLIGHT
,本案例中的SFLIGHT数据库表数据如下,供各位小伙伴们对照来观察代码运行结果:
简单WHERE子句
一个简单的WHERE 子句
通常包含一个条件表达式
,该表达式评估为 TRUE
或 FALSE
。这个表达式通常由以下元素组成:
-
字段名
:需要筛选的字段名。 -
运算符
:用于比较字段值的运算符,如等于号(=)
、大于号(>)
、小于号(<)
等。 -
值
:与字段值进行比较的值。
以下是简单WHERE子句
的一般语法样式:
SELECT ...
FROM table_name
WHERE field_name [= | > | < | <>] 'value'.
参数介绍:
<table_name>
: 目标数据库表<field_name>
: 数据库表中字段。
案例演示
下面给出四段以SFLIGHT数据库表
为基准的示例代码,详细讲解了ABAP OPEN SQL中简单WHERE子句的应用
,仅供参考:
PS:为了简便,下面的语法都基于OPEN SQL的新语法,关于新语法的讲解将在本系列最后章节进行详细地讲解!
TIPS:运算符与字段和值之间需要间隔至少一个空格单位
!!!
使用"="运算符
SELECT * FROM sflight INTO TABLE @DATA(gt_sflight)
WHERE carrid ='AC'.
LOOP AT gt_sflight INTO DATA(gs_sflight).
WRITE: / gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.
ENDLOOP.
该段代码使用
"="运算符
检索出了SFLIGHT
数据库表中所有carrid等于AC
的数据。
使用">"运算符
SELECT * FROM sflight INTO TABLE @DATA(gt_sflight)
WHERE price > 2000.
LOOP AT gt_sflight INTO DATA(gs_sflight).
WRITE: / gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.
ENDLOOP.
该段代码使用
">"运算符
,检索出了SFLIGHT
数据库表中所有price大于2000
的数据。
使用"<"运算符
SELECT * FROM sflight INTO TABLE @DATA(gt_sflight)
WHERE price < 2000.
LOOP AT gt_sflight INTO DATA(gs_sflight).
WRITE: / gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.
ENDLOOP.
该段代码使用
"<"运算符
,检索出了SFLIGHT
数据库表中所有price小于2000
的数据。
使用"<>"运算符
SELECT * FROM sflight INTO TABLE @DATA(gt_sflight)
WHERE price <> 2500.
LOOP AT gt_sflight INTO DATA(gs_sflight).
WRITE: / gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.
ENDLOOP.
该段代码使用
"<>"运算符
,检索出了SFLIGHT
数据库表中所有price不等于2500
的数据。
WHERE 子句中的逻辑运算符
WHERE子句中可以使用逻辑运算符
来将多个条件组合在一起。下面是一些常见的逻辑运算符:
-
AND
:当所有条件都为 TRUE
时,整个条件表达式才会评估为 TRUE
。 -
OR
:当至少有一个条件为 TRUE
时,整个条件表达式就会被评估为 TRUE
。 -
NOT
:将条件表达式的结果反转
。
案例演示
下面给出三段以SFLIGHT数据库表
为基准的示例代码,详细讲解了ABAP OPEN SQL中WHERE子句逻辑运算符的应用
,仅供参考:
PS:为了简便,下面的语法都基于OPEN SQL的新语法,关于新语法的讲解将在本系列最后章节进行详细地讲解!
TIPS:运算符与字段和值之间需要间隔至少一个空格单位!!!
使用"AND"逻辑运算符
SELECT * FROM sflight INTO TABLE @DATA(gt_sflight)
WHERE carrid = 'AC' AND price = 2500.
LOOP AT gt_sflight INTO DATA(gs_sflight).
WRITE: / gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.
ENDLOOP.
该段代码使用
"AND"逻辑运算符
,检索出了SFLIGHT
数据库表中所有carrid等于'AC'
和price等于2500
的数据。
使用"OR"逻辑运算符
SELECT * FROM sflight INTO TABLE @DATA(gt_sflight)
WHERE PRICE = 1500 OR PRICE = 2500.
LOOP AT gt_sflight INTO DATA(gs_sflight).
WRITE: / gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.
ENDLOOP.
该段代码使用
"OR"逻辑运算符
,检索出了SFLIGHT
数据库表中所有price等于'1500'
或者price等于2500
的数据。
使用"NOT"逻辑运算符
*PS:注意NOT与括号之间需要有空格,条件表达式与括号之间也需要有空格!!
SELECT * FROM sflight INTO TABLE @DATA(gt_sflight)
WHERE NOT ( PRICE = 1500 OR PRICE = 2500 ).
LOOP AT gt_sflight INTO DATA(gs_sflight).
WRITE: / gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.
ENDLOOP.
该段代码使用
"NOT"逻辑运算符
,将上方使用OR逻辑运算符的那段代码的结果进行了反转,剔除掉了SFLIGHT
数据库表中所有price等于'1500'
或者price等于2500
的数据。
BETWEEN 运算符
BETWEEN 运算符用于检索介于两个值之间的数据。BETWEEN 运算符需要指定一个起始值和一个结束值,它将匹配这两个值之间(包括这两个值)的所有行。
以下是BETWEEN
运算符的一般语法样式:
SELECT ...
FROM table_name
WHERE field_name BETWEEN 'value1' AND 'value2'.
参数介绍:
<table_name>
: 目标数据库表<field_name>
: 数据库表中字段。value1,value2
: 值
案例演示
下面给出一段以SFLIGHT数据库表
为基准的示例代码,详细讲解了ABAP OPEN SQL中BETWEEN运算符的应用
,仅供参考:
PS:为了简便,下面的语法都基于OPEN SQL的新语法,关于新语法的讲解将在本系列最后章节进行详细地讲解。
SELECT * FROM sflight INTO TABLE @DATA(gt_sflight)
WHERE price BETWEEN 1000 AND 1500.
LOOP AT gt_sflight INTO DATA(gs_sflight).
WRITE: / gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.
ENDLOOP.
该段代码中使用
BETWEEN
运算符将数据进行了限制,只从数据库表中取出price在1000到1500之间
的数据。
IN 子句
IN 子句可以用来匹配一系列值中的任何一个。IN 子句可以使用一个列表,列表中包含需要匹配的值。这个列表可以是常量、字段或子查询的结果。
以下是IN
子句的一般语法样式:
SELECT ...
FROM table_name
WHERE field_name IN (['value1', 'value2', 'value3' | 子查询语句]).
参数介绍:
<table_name>
: 目标数据库表<field_name>
: 数据库表中字段。value1,value2,value3
: 值- IN后面的列表中还可以填入子查询语句,将在本文最后进行讲解
案例演示
下面给出一段以SFLIGHT数据库表
为基准的示例代码,详细讲解了ABAP OPEN SQL中IN子句的应用
,仅供参考:
PS:为了简便,下面的语法都基于OPEN SQL的新语法,关于新语法的讲解将在本系列最后章节进行详细地讲解。
SELECT * FROM sflight INTO TABLE @DATA(gt_sflight)
WHERE price IN ( 1500,2500 ).
LOOP AT gt_sflight INTO DATA(gs_sflight).
WRITE: / gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.
ENDLOOP.
在这段代码中,使用IN子句利用列表限制了
price的值只能为1500或者2500
,但是要注意列表中的值需要用逗号分隔并且距离两端括号至少一个空格单位
。
LIKE 子句
LIKE 子句用于基于模式
的比较,它可以用来匹配一个特定的模式。LIKE 子句可以使用通配符
来代替某些字符。通配符有两种:
-
百分号(%)
:代表任何字符序列,包括零个字符。 -
下划线(_)
:代表任何单个字符。
以下是LIKE
子句的一般语法样式:
SELECT ...
FROM table_name
WHERE field_name LIKE 'value%'.
参数介绍:
<table_name>
: 目标数据库表<field_name>
: 数据库表中字段。value%
: 通配值
案例演示
下面给出两段以SFLIGHT数据库表
为基准的示例代码,详细讲解了ABAP OPEN SQL中LIKE子句的应用
,仅供参考:
使用"%"通配符
SELECT * FROM sflight INTO TABLE @DATA(gt_sflight)
WHERE CARRID LIKE 'A%'.
LOOP AT gt_sflight INTO DATA(gs_sflight).
WRITE: / gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.
ENDLOOP.
上述代码将从
SFLIGHT
表中检索所有CARRID
列以'A'
开头的行,并将他们打印输出到屏幕中。
使用"_"通配符
SELECT * FROM sflight INTO TABLE @DATA(gt_sflight)
WHERE CARRID LIKE 'L_'.
LOOP AT gt_sflight INTO DATA(gs_sflight).
WRITE: / gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.
ENDLOOP.
上述代码将从
SFLIGHT
表中检索所有CARRID
列以'L'
开头的行,并将他们打印输出到屏幕中。
子查询语句
子查询是一个 SELECT 语句,它嵌套在另一个 SELECT 语句中作为一个条件。子查询的结果可以是一个单一的值
、一个列表
或一个表
。
以下是子查询语句
的一般语法样式:
SELECT ...
FROM table_name1
WHERE field_name IN (SELECT field_name FROM table_name2).
参数介绍:
<table_name1>
: 目标数据库表<table_name2>
: 子查询目标数据库表<field_name>
: 数据库表中字段。
下面给出一段以SFLIGHT数据库表
和SPFLI数据库表
为基准的示例代码,详细讲解了ABAP OPEN SQL中LIKE子句的应用
,仅供参考:
SELECT * FROM sflight INTO TABLE @DATA(gt_sflight)
WHERE CARRID IN ( SELECT CARRID FROM spfli WHERE connid = '0026' ).
LOOP AT gt_sflight INTO DATA(gs_sflight).
WRITE: / gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.
ENDLOOP.
写在最后的话
本文花费大量时间介绍了OPEN SQL中WHERE
语句大全,希望能帮助到各位小伙伴,码文不易,还望各位大佬们多多支持哦,你们的支持是我最大的动力!
✨ 原 创 不 易 , 还 希 望 各 位 大 佬 支 持 一 下 \\textcolorblue原创不易,还希望各位大佬支持一下 原创不易,还希望各位大佬支持一下
👍 点 赞 , 你 的 认 可 是 我 创 作 的 动 力 ! \\textcolor9c81c1点赞,你的认可是我创作的动力! 点赞,你的认可是我创作的动力!
⭐️ 收 藏 , 你 的 青 睐 是 我 努 力 的 方 向 ! \\textcolored7976收藏,你的青睐是我努力的方向! 收藏,你的青睐是我努力的方向!
✏️ 评 论 , 你 的 意 见 是 我 进 步 的 财 富 ! \\textcolor98c091评论,你的意见是我进步的财富! 评论,你的意见是我进步的财富!
「SAP ABAP」OPEN SQLSELECT语句
💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言ABAP,SQL进行任务的完成,对SAP企业管理系统,SAP ABAP开发和数据库具有较深入的研究。
💅文章概要: 各位小伙伴们大家好呀!今天继续SAP ABAP系列文章的讲解,本节带来的内容是OPEN SQL中SELECT语句的介绍,希望大家喜欢!
🤟每日一言: 永远年轻,永远热泪盈眶!
目录
前言
各位小伙伴们大家好呀!今天继续SAP ABAP系列文章的讲解,本节带来的内容是OPEN SQL中SELECT语句的介绍,希望大家喜欢!
数据库表准备
本文所有案例都是基于数据库表SFLIGHT
,本案例中的SFLIGHT数据库表数据如下,供各位小伙伴们对照来观察代码运行结果:
SELECT语句介绍
在ABAP中,SELECT语句
用于从数据库表中检索数据,它与传统的SQL语句有相似之处,也有独特于ABAP的特性
,下面是OPEN SQL中标准的代码语法样例:
SELECT <fields>
FROM <table>
[WHERE <condition>]
[ORDER BY <fields> [ASC|DESC]]
[GROUP BY <fields> [HAVING <condition>]]
[INTO <internal table>]
[FOR ALL ENTRIES IN <internal table>]
[UP TO <n> ROWS]
[HINT <hint>].
参数介绍:
<fields>
:需要检索的字段列表。<table>
:需要从中检索数据的数据库表。<condition>
:可选项,用于过滤检索结果的条件。<internal table>
:可选项,表示检索结果将被存储在内部表中。FOR ALL ENTRIES IN <internal table>
:可选项,表示使用内部表中的值作为条件来检索数据。<n>
:可选项,表示返回的最大行数。<hint>
:可选项,用于优化数据库查询。
SELECT语句变式
在ABAP中,SELECT语句不仅可以检索多行数据,还可以检索单行数据
。为了满足这两种不同的检索需求,ABAP提供了两种SELECT语句的变体:SELECT SINGLE
和SELECT SEVERAL LINE
。
SELECT SINGLE
SELECT SINGLE
语句用于从数据库中检索单个行,并将其存储在内部表中。如果检索到多行数据,则只返回第一行数据
。
以下是SELECT SINGLE语句的语法:
SELECT SINGLE <fields>
FROM <table>
[WHERE <condition>]
[ORDER BY <fields> [ASC|DESC]]
[INTO <internal table>]
[FOR UPDATE].
PS:
所有参数同SELECT语句介绍一致
案例演示
在这个案例中,首先声明一个sflight表的结构体类型ls_flight
,然后使用SELECT SINGLE
语句检索连接ID为0820
的航班的航空公司、连接ID、日期和价格,并将数据存储在结构体ls_flight中
。最后,使用WRITE语句将检索到的航班数据输出到屏幕上。
DATA: ls_flight TYPE sflight.
* Select a flight with connection ID = 0820 and store the data in a structure
SELECT SINGLE carrid, connid, fldate, price
FROM sflight
WHERE connid = '0820'
INTO CORRESPONDING FIELDS OF @ls_flight.
* Display the flight data
WRITE: / 'Flight', ls_flight-connid, 'on', ls_flight-fldate,
'with airline', ls_flight-carrid, 'costs', ls_flight-price, 'USD'.
PS:SELECT数据插入到结构体变量中需要使用新语法,需要在结构体变量前加
@
,并且字段间用逗号
隔开。
SELECT SEVERAL LINE
SELECT SEVERAL LINE
语句用于从数据库中检索多个行,并将其存储在内部表
中。如果没有检索到数据,则返回空内部表
。
以下是SELECT SEVERAL LINE语句的语法:
SELECT <fields>
FROM <table>
[WHERE <condition>]
[ORDER BY <fields> [ASC|DESC]]
[GROUP BY <fields> [HAVING <condition>]]
[INTO <internal table>]
[FOR ALL ENTRIES IN <internal table>]
[UP TO <n> ROWS]
[HINT <hint>].
PS:
所有参数同SELECT语句介绍一致
案例演示
下面是一个案例的详细讲解:
PS:该段代码为OPEN SQL老语法格式。
DATA: lt_flight TYPE STANDARD TABLE OF sflight,
ls_flight TYPE sflight.
* Select all flights with airline code 'LH' and store the data in an internal table
SELECT carrid connid fldate price
INTO CORRESPONDING FIELDS OF TABLE lt_flight
FROM sflight
WHERE carrid = 'LH'.
* Display the flight dataZ
WRITE: / 'Flights operated by airline LH:'.
LOOP AT lt_flight INTO ls_flight.
WRITE: / ls_flight-connid, 'on', ls_flight-fldate, 'costs', ls_flight-price, 'USD'.
ENDLOOP.
在这个案例中,首先声明一个内部表lt_flight
,其类型为自定义类型ty_flight
,该类型包含航空公司、连接ID、日期和价格字段。
然后,使用SELECT SEVERAL LINE
语句检索航空公司代码为LH的所有航班的航空公司、连接ID、日期和价格,并将数据存储在内部表lt_flight
中。
最后,使用LOOP AT语句遍历内部表中的每个航班数据
,并使用WRITE语句
将其输出到屏幕上。
PS:下面这段代码为上方那段代码的新语法格式。
* Select all flights with airline code 'LH' and store the data in an internal table
SELECT carrid,connid,fldate,price
INTO TABLE @DATA(lt_flight)
FROM sflight
WHERE carrid = 'LH'.
* Display the flight dataZ
WRITE: / 'Flights operated by airline LH:'.
LOOP AT lt_flight INTO DATA(ls_flight).
WRITE: / ls_flight-connid, 'on', ls_flight-fldate, 'costs', ls_flight-price, 'USD'.
ENDLOOP.
SELECT并输出打印
下面介绍ABAP中两种SELECT并且输出打印的方式,其中第一种是先将数据SELECT到结构体变量中,然后输出打印
;第二种是先将数据SELECT到内部表中,然后使用LOOP语句遍历内表最终输出打印到屏幕上
。
SELECT……ENDSELECT
下面给出一个详细的案例进行详解:
PS:该段代码为OPEN SQL老语法格式。
DATA:gs_sflight TYPE sflight.
SELECT * INTO gs_sflight FROM sflight WHERE carrid = 'AC'.
WRITE:/ gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.
ENDSELECT.
PS:下面这段代码为上方那段代码的新语法格式。
SELECT * INTO @DATA(gs_sflight) FROM sflight WHERE carrid = 'AC'.
WRITE:/ gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.
ENDSELECT.
SELECT(LOOP……ENDLOOP)
下面给出一个详细的案例进行详解:
PS:该段代码为OPEN SQL老语法格式。
DATA: gt_sflight TYPE TABLE OF sflight.
DATA: gs_sflight TYPE sflight.
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_sflight FROM sflight WHERE carrid = 'AC'.
LOOP AT gt_sflight INTO gs_sflight.
WRITE:/ gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.
ENDLOOP.
PS:下面这段代码为上方那段代码的新语法格式。
SELECT * INTO TABLE @DATA(gt_sflight) FROM sflight WHERE carrid = 'AC'.
LOOP AT gt_sflight INTO DATA(gs_sflight).
WRITE:/ gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.
ENDLOOP.
SELECT……AS
在ABAP中,使用SELECT AS
可以为查询结果的列定义别名
。这对于使用SELECT语句构建动态SQL语句
和生成报表
非常有用。
SELECT <columns> AS <alias>...
参数介绍
<columns>
:数据库表中字段。<alias>
:字段别名。
下面给出一个详细的案例进行详解:
SELECT carrid AS airline_code,
connid AS connection_id,
price AS airplane_price
INTO TABLE @DATA(gt_sflight)
FROM sflight
WHERE carrid = 'LH'.
LOOP AT gt_sflight INTO DATA(gs_sflight).
WRITE:/ gs_sflight-airline_code, gs_sflight-connection_id,gs_sflight-airplane_price.
ENDLOOP.
PS:SELECT…AS语句需要使用新语法。
在这个例子中,我们使用SELECT AS
为CARRID和CONNID两个列定义了别名
。这个别名可以在程序中被引用,这样我们就可以避免使用SFLIGHT表中的实际列名
。
在程序的输出中,我们使用gs_sflight-airline_code
和gs_sflight-connection_id
还有gs_sflight-airplane_price
来引用别名,这样输出的结果中将显示别名。
动态SELECT语句
在ABAP中,可以使用动态SELECT语句
来构建在运行时构建SQL语句的能力
。这对于需要根据用户输入或条件动态构建SQL语句的应用程序非常有用。
下面给出一个详细的案例进行详解:
PS:该段代码为OPEN SQL老语法格式。动态SELECT语句不推荐使用新语法,很容易报错!
DATA:gt_sflight TYPE TABLE OF sflight.
DATA:gs_sflight TYPE sflight.
DATA:gs_line(72) TYPE c.
gs_line = 'CARRID CONNID'.
SELECT (gs_line) INTO CORRESPONDING FIELDS OF TABLE gt_sflight FROM sflight WHERE carrid =
'AC'.
LOOP AT gt_sflight INTO gs_sflight.
WRITE:/ gs_sflight-carrid,gs_sflight-connid.
ENDLOOP.
在这个例子中,首先,声明了一个sflight
类型的结构体变量gs_sflight
,和一个sflight类型的表类型gt_sflight
。然后,声明了一个长度为72
的字符变量gs_line
。接着,将字符串'CARRID CONNID'
赋值给gs_line
。
紧接着,使用SELECT语句从sflight表中查询符合条件carrid = 'AC'
的记录,并将其按照gs_line所指定的字段顺序,存储到表类型gt_sflight
中。
最后,通过LOOP语句遍历
gt_sflight表中的每一行记录,并使用WRITE
语句将每条记录的CARRID、CONNID、PRICE字段的值输出到控制台。
DISTINCT
[DISTINCT]
为OPEN SQL中SELECT语句的可选项,若选择则自动删除所查询数据的重复项!
在某些场景中,我们需要对查到的数据进行去重
的操作,这时候便需要加上DISTINCT
可选项!
下面给出一个详细的案例进行讲解:
DATA:GT_SFLIGHT TYPE TABLE OF SFLIGHT.
DATA:GS_SFLIGHT TYPE SFLIGHT.
DATA:GS_LINE(72) TYPE C.
GS_LINE = 'CARRID CONNID'.
SELECT DISTINCT (GS_LINE) INTO CORRESPONDING FIELDS OF TABLE GT_SFLIGHT FROM SFLIGHT WHERE CARRID = 'AC'.
LOOP AT GT_SFLIGHT INTO GS_SFLIGHT.
WRITE:/ GS_SFLIGHT-CARRID,GS_SFLIGHT-CONNID.
ENDLOOP.
在SFLIGHT数据库表中,CARRID等于‘AC’
的数据有五条,使用了DISTINCT
语句后查询出来的数据便只有一条
了。
FOR UPDATE
在ABAP中,SELECT SINGLE
语句可以使用FOR UPDATE
选项来锁定检索到的行
,以便在事务期间对它们进行更新或删除操作。当使用FOR UPDATE选项时,会在数据库中为检索到的行设置锁,防止其他用户同时修改相同的数据
。
下面给出一个详细的案例进行详解:
START-OF-SELECTION.
DATA: lv_name TYPE zemployee-name,
lv_salary TYPE zemployee-salary.
* Select employee with ID = 123 and lock the row for update
SELECT SINGLE name, salary
FROM zemployee
WHERE id = '123'
INTO (lv_name, lv_salary)
FOR UPDATE.
* Update the employee's salary
lv_salary = lv_salary + 1000.
* Commit the changes
COMMIT WORK.
在这个示例中,首先使用SELECT SINGLE语句检索ID为123的员工姓名和工资,并将该行锁定以进行更新
。然后,将员工的工资增加1000,并在事务结束时提交更改。由于该行被锁定,其他用户无法同时更新相同的数据
。
PS:FOR UPDATE可选项一般比较少用到,读者仅仅需要对其有了解即可。
写在最后的话
本文花费大量时间介绍了OPEN SQL中SELECT语句的详细语法
,希望能帮助到各位小伙伴,码文不易,还望各位大佬们多多支持哦,你们的支持是我最大的动力!
✨ 原 创 不 易 , 还 希 望 各 位 大 佬 支 持 一 下 \\textcolorblue原创不易,还希望各位大佬支持一下 原创不易,还希望各位大佬支持一下
👍 点 赞 , 你 的 认 可 是 我 创 作 的 动 力 ! \\textcolor9c81c1点赞,你的认可是我创作的动力! 点赞,你的认可是我创作的动力!
⭐️ 收 藏 , 你 的 青 睐 是 我 努 力 的 方 向 ! \\textcolored7976收藏,你的青睐是我努力的方向! 收藏,你的青睐是我努力的方向!
✏️ 评 论 , 你 的 意 见 是 我 进 步 的 财 富 ! \\textcolor98c091评论,你的意见是我进步的财富! 评论,你的意见是我进步的财富!
以上是关于「SAP ABAP」OPEN SQLWHERE语句大全的主要内容,如果未能解决你的问题,请参考以下文章
「SAP ABAP」OPEN SQL的DML语句你了解多少 (附超详细案例讲解)
「SAP ABAP」你真的了解OPEN SQL的DML语句吗 (附超详细案例讲解)
「ABAP」OPEN SQL中FROM语句超详细解析(附案例源码解读)