2021-05-20

本文将深入浅出地介绍如何在cmd窗口使用javadoc命令为Java HelloWorld类生成API文档,包括设置编码和字符集的过程,适合初学者了解基本用法。

JavaDoc

HelloWorld类文件举例
cmd窗口执行:
javadoc -encoding UTF-8 -charset UTF-8 HelloWorld.java

### 出现空值的原因 - **分区首行**:在使用窗口函数 `max(edt) over(partition by id order by stt rows between UNBOUNDED PRECEDING and 1 PRECEDING)` 时,对于每个 `id` 分区内的第一行数据,`rows between UNBOUNDED PRECEDING and 1 PRECEDING` 表示从分区的起始行到当前行的前一行。由于第一行没有前一行,所以 `max(edt)` 在此情况下没有可比较的行,因此会返回空值。 - **数据本身为空**:如果在分区内除了当前行之外,其他行的 `edt` 字段值都为 `NULL`,那么 `max()` 函数在计算时会将这些 `NULL` 值排除,由于没有有效的非空值可供比较,也会返回 `NULL`。 ### 某行出现更大日期值的原因 - **数据顺序**:窗口函数是按照 `order by stt` 对分区内的数据进行排序的。如果在分区内,后面行的 `edt` 值本身就比前面行的 `edt` 值大,那么随着窗口的移动,`max(edt)` 会不断更新为更大的日期值。例如,在同一个 `id` 分区内,前面行的 `edt` 是较早的日期,而后面行的 `edt` 是较晚的日期,当窗口移动到后面行时,`max(edt)` 就会更新为这个较晚的日期。 - **数据异常**:可能是数据录入错误或者系统异常导致某行的 `edt` 值出现了不合理的大日期。例如,可能在录入促销结束日期时,输入了一个错误的未来日期。 示例代码如下,模拟了该查询过程: ```sql -- 创建示例表 CREATE TABLE test4 ( id INT, stt DATE, edt DATE ); -- 插入示例数据 INSERT INTO test4 (id, stt, edt) VALUES (1, '2023-01-01', '2023-01-10'), (1, '2023-01-15', '2023-01-20'), (2, '2023-02-01', '2023-02-10'), (2, '2023-02-15', '2023-02-20'); -- 执行查询 SELECT id, stt, edt, MAX(edt) OVER (PARTITION BY id ORDER BY stt ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING) AS maxEdt FROM test4; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值