The best preparation for tomorrow is doing your best today.
为明天做最好的准备就是今天做到最好。
1
程序效果
2
源码分享
*&\----------------------------------------------------------------------
*& 15\. Open Sql Part 4
*&\----------------------------------------------------------------------
BEGIN OF gty_student ,
id ( 3 ) TYPE n , "学生ID
name ( 10 ) TYPE c , "姓名
gender TYPE c , "性别
age TYPE i , "年龄
class ( 10 ) TYPE c , "班级
score TYPE p DECIMALS 2 , "成绩
date TYPE d , "入学日期
END OF gty_student ,gty_t_student TYPE TABLE OF gty_student WITH EMPTY KEY .
DATA ( gt_student ) = VALUE gty_t_student ( LET pre = 'Student'
random = cl_abap_random_packed_dec2 => create ( seed = CONV # ( sy
\- timlo ) min = 0 max = 100 ) IN
FOR n = 1 UNTIL n > 10
( id = n
name = |{ pre } { n }|
gender = COND # ( WHEN n MOD 2 = 0 THEN '男' ELSE '女' )
age = 10 \+ n
class = |{ n }班|
score = random -> get_next ( )
date = sy \- datum + n ) ).
*------------------------------------------------------------------------------*
SELECT id ,name ,
'->' AS sep1 ,
*&****数值类型(绝对值、取整、四舍五入、除法)
score * \- 1 AS neg_score ,
"绝对值
abs ( score * \- 1 ) AS abs ,
'->' AS sep2 ,
score ,
"取整
ceil ( score ) AS ceil , "向上取整
floor ( score ) AS floor , "向下取整
"四舍五入
round ( score , 1 ) AS round , "舍小数
round ( score , \- 1 ) AS round2 , "舍整数
'->10' AS sep3 ,
"除法
division ( 10 , 3 , 2 ) AS division , "取商:保留小数位
div ( 10 , 3 ) AS div , "取商:舍去小数位
mod ( 10 , 3 ) AS mod , "取余
'-->' AS sep4
FROM @gt_student AS stu_info
WHERE id < @ ( VALUE # ( gt_student[ 6 ] \- id OPTIONAL ) )
INTO TABLE @DATA ( lt_sql ).
3
AI解释
仅供参考
** Open SQL 用法解释 - Part 4 **
**概述:** 在 Open SQL 的第四部分示例代码中,介绍了 SELECT 语句中对数值类型字段进行操作的多种函数的使用。以下是核心点的描述。
**代码核心点:** ** 1\. 定义 ** ** 表类型 ** :使用 TYPES 关键字定义了一个名为
gty_t_student的表类型,表示学生信息。
**2\. 生成测试数据** :使用 VALUE 关键字和 FOR 循环生成了一个包含 10 条学生信息的内表 gt_student。
**3\. Open SQL 查询** :使用 SELECT 关键字查询 数据库表(示例为内表) 。在 SELECT
语句中,对数值类型的字段进行了多种函数操作,包括绝对值、取整、四舍五入、除法等。。
**4\. 数值类型函数操作** :在 SELECT 语句的字段列表中,引入了多个数值类型的函数,实现了对数值类型字段的各种操作。
**5\. 条件过滤** :与之前相同,使用 WHERE 子句指定了查询条件,仅选择 id 小于内表中第 6 条学生记录的学生信息。
**6\. 查询结果存储** :使用 INTO TABLE @lt_sql 将查询结果存储到内表 lt_sql 中。
**示例解释:** \- 查询学生表中的部分字段,对数值类型字段进行了绝对值、取整、四舍五入、除法等多种操作。 \- 通过 WHERE
子句过滤条件,仅选择 id 小于内表中第 6 条学生记录的学生信息。
**示例输出:** 查询结果将包含选定的字段,以及对数值类型字段应用各种函数后的结果,存储在内表 lt_sql 中。
以上是今日分享,希望对你有所帮助~~~
欢迎点赞、留言、分享
往期推荐
[ ABAP 新语法-OPEN SQL Part 1
](https://mp.weixin.qq.com/s?__biz=Mzg3OTE2Njg0OQ==&mid=2247496110&idx=1&sn=84fbd1501ed367a8d873ec0134bb83d3&chksm=cf0a2540f87dac568fa398805e317dee522c3aa45dbc0a881b5507546db02eca58f3364e61a7&scene=21#wechat_redirect)
[ ABAP 新语法-OPEN SQL Part 2
](https://mp.weixin.qq.com/s?__biz=Mzg3OTE2Njg0OQ==&mid=2247496219&idx=1&sn=5d031cf86fb2f76e8262dccd5bbd99bf&chksm=cf0a26f5f87dafe336db169dc88530ed0a76b67f5482cd79ac739c856a957a92a5c52e8046f1&scene=21#wechat_redirect)
[ ABAP 新语法-OPEN SQL Part 3
](https://mp.weixin.qq.com/s?__biz=Mzg3OTE2Njg0OQ==&mid=2247496239&idx=1&sn=d320ef6ef9283234edeed44fbaa0e84c&chksm=cf0a26c1f87dafd7657e9e7d582fee578b8aba2d29d47fdf5c266099190666770da760182279&scene=21#wechat_redirect)
[ ABAP 新语法-GROUP BY
](https://mp.weixin.qq.com/s?__biz=Mzg3OTE2Njg0OQ==&mid=2247495701&idx=1&sn=8b5959e457fdbd665598bf30b6e441a5&chksm=cf0a24fbf87daded579245ffa24099fcbe71400810fe25a02b632aca320bf095372eb2505d1e&scene=21#wechat_redirect)
点个 在看 你最好看