我有一个表有一系列基于时间的事件,每个事件都有一个开始和结束日期.对于最近(当前)事件,结束日期为NULL.我试图折叠重复的行,只显示最早的开始日期和最新的结束日期.如果NULL位于日期字段中,则忽略该行.我可以使用NVL()来设置结束日期值,但这会导致前端逻辑搜索并替换该值.
反正有没有让max()函数将NULL排序为高?
CREATE TABLE CONG_MEMBER_TERM
(
CONG_MEMBER_TERM_ID NUMBER(10) NOT NULL,
CHAMBER_CD VARCHAR2(30 BYTE) NOT NULL,
CONG_MEMBER_ID NUMBER(10) NOT NULL,
STATE_CD CHAR(2 BYTE) NOT NULL,
DISTRICT NUMBER(10),
START_DT TIMESTAMP(6) WITH TIME ZONE,
END_DT TIMESTAMP(6) WITH TIME ZONE
)
Run Code Online (Sandbox Code Playgroud)
此查询有效,但会删除结束日期为NULL的行.
select CONG_MEMBER_ID,
district,
min(start_dt),
max(end_dt)
from CONG_MEMBER_TERM
where CONG_MEMBER_ID = 1716
group by CONG_MEMBER_ID, district;
Run Code Online (Sandbox Code Playgroud)
此查询修复了该问题,但现在我有一个"虚拟"结束日期值(9/9/9999).我宁愿不用编码的东西.
select CONG_MEMBER_ID,
district,
min(start_dt),
max(nvl(end_dt, to_date('9/9/9999', 'mm/dd/yyyy')))
from CONG_MEMBER_TERM
where CONG_MEMBER_ID = 1716
group by CONG_MEMBER_ID, district;
Run Code Online (Sandbox Code Playgroud)
谢谢.
有没有办法查看我的应用程序的所有当前计划的本地通知?
只是尝试做一些调试,看到通知列表会很高兴,而不必等到它们触发.
_麦克风
我们有一个表格,列出了“服务时间”的开始和结束日期。我想要一个可以搜索所有行并根据日期间隔确定服务中断的查询。
Data:
Start End
1/1/2000 2/1/2001
2/2/2001 4/1/2001
4/1/2004 6/2/2006
6/3/2006 9/1/2010
8/1/2011 9/1/2012
Desired result:
1/1/2001 - 4/1/2001 //The first two ranges collapsed because no break in service
4/1/2004 - 9/1/2010 // The 3rd and 4th rows collapsed because no real break in service
8/1/2011 - 9/1/2012
Run Code Online (Sandbox Code Playgroud)
这可能更容易在应用程序逻辑或存储过程中完成,只是想知道是否有任何 SQL 巫术可以让我接近。
Table definition:
CREATE TABLE CONG_MEMBER_TERM
(
CONG_MEMBER_TERM_ID NUMBER(10, 0) NOT NULL
, CONGRESS_ID NUMBER(10, 0) NOT NULL
, CHAMBER_CD VARCHAR2(30 BYTE) NOT NULL
, CONG_MEMBER_ID NUMBER(10, 0) NOT NULL …
Run Code Online (Sandbox Code Playgroud) 我有一个简单的绘图程序,允许用户在屏幕上绘制两个封闭的椭圆.我想用渐变填充椭圆,使用内部椭圆来表示渐变的"百分比".即Th梯度将在外椭圆形到内椭圆形之间平滑过渡.
我的交互式绘图工作正常,现在我只需要填充渐变.
有什么想法吗?文档只讨论完美的圆形渐变,而不是椭圆形.
_麦克风