execute_query用于显示所有记录,顺序工作正常,但不按降序排列
如果有任何方法可以按(“否”,列)中的顺序对数据块进行排序,请提供帮助
create table Citizens_lic
(
No NUMBER(10) ,
ID NUMBER(10)
constraint Citizens_ID_pk_1 PRIMARY KEY,
F_Name VARCHAR2(32) ,
M_Name VARCHAR2(32) ,
L_Name VARCHAR2(32) ,
DOB DATE ,
POB VARCHAR2(32) ,
GENDER VARCHAR2(32) ,
WORK_STATUS VARCHAR2(32) ,
Soc_status VARCHAR2(32) ,
ISS_DATE date ,
EXP_Date date
)
这是表格,这是顺序:
CREATE SEQUENCE CITIZENS_LIC_NO_SEQ_1
START WITH 1
INCREMENT BY 1
这是触发器:
CREATE OR REPLACE TRIGGER CITIZENS_LIC_NO_TRIGG_1
BEFORE INSERT ON CITIZENS_LIC
FOR EACH ROW
BEGIN
SELECT CITIZENS_LIC_NO_SEQ_1.NEXTVAL
INTO :new.NO
FROM DUAL;
END;
尝试添加任何值,都可以正常工作,但是当您从“表单”构建器添加值时,它将根据您的鼠标单击更改顺序
另一件事是,当我尝试从表格中删除任何内容时, 序列破坏了顺序,删除的值永远消失了,其序列号也消失了!
可能会触发表单帮助,但我不知道该使用哪种表单
答案 0 :(得分:2)
如果要对数据块中的行进行排序,请打开其属性选项板,找到ORDER BY
属性,然后将所需的内容放在其中。您的情况似乎是
order by no desc
在该数据块中执行查询时,结果将按no
列的降序排序。
截至删除行:当然,它将丢失。您期望什么?序列可确保唯一但并非完美的数字列表。注意其缓存;您甚至不必删除任何行,但是连续两个会话可能会产生间隙。这就是序列的工作方式;如果我是你,我会接受的。
如果要创建无间隙数,则必须编写自己的代码,它不会像您想的那样简单。您必须注意插入(简单),更新和删除。再次:坚持序列。