利用 ROW_NUMBER() over( ) 给查询序列增加排序字段
SELECT ROW_NUMBER() over(ORDER bY biztypename DESC ) AS num,biztypename FROM (SELECT DISTINCT biztypename FROM bizmaptype) t;
效果如下:
补充:PostgreSql 使用自定义序列(Sequence)向表插入数据 id 自增长
按照以往Oracle建表的流程,我们来新建表,并且向表中导入数据。
1.创建Book表
CREATE TABLE book( id INTEGER PRIMARY KEY , name CHARACTER VARYING(50), price DOUBLE PRECISION, author CHARACTER VARYING(20) );
PRIMARY KEY 将id设置为主键;
数据类型
类型名称 别名 描述
integer int,int4 有正负之分的4字节整数
character varying [ (n) ] varchar [ (n) ]
可变长度的字符串
double precision float8 双精度浮点数(8字节)
更多类型请参考文档:https://www.postgresql.org/docs/9.3/static/datatype.html
2.创建自动增长序列
CREATE SEQUENCE book_id_seq START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1;
参数 描述
START WITH 设置起始值,允许序列从任何地方开始
INCREMENT BY 设置增量,指定在哪个值得基础上创建新值,正值将产生递增序列,负值将产生递减序列;默认值为1。
NO MINVALUE 设置序列可以生成的最小值,如果未指定NO MINVALUE,对于升序和降序序列,默认值分别为1和。
NO MAXVALUE 设置序列可以生成的最大值,如果未指定此子句,将使用默认值,对于升序和降序序列,默认值为和-1。
CACHE 设置高速缓存,要分配多少序列号并将其存贮在内存中方便更快的访问,最小值为1,默认值也是1。
3.为book表添加自动增长序列
ALTER TABLE book ALTER COLUMN id SET DEFAULT nextval('book_id_seq');
4.向book表Insert数据
INSERT INTO public.book VALUES (nextval('book_id_seq'),'《本色》',30.5,'乐嘉'); INSERT INTO public.book VALUES (nextval('book_id_seq'),'《平凡世界》',90.5,'路遥'); INSERT INTO public.book VALUES (nextval('book_id_seq'),'《Java编程思想》',60.5,'詹姆斯·高斯林'); INSERT INTO public.book VALUES (nextval('book_id_seq'),'《Web高级编程》',50.5,'李三');
5.查询book表中数据
SELECT * FROM public.book;
查询结果:
6.相关序列操作:
--查询序列 (每查询一次,序列就做了一次+1操作,即查询下一次的value) SELECT nextval('book_id_seq'); --移除序列 DROP SEQUENCE 'book_id_seq';
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。