精华内容
下载资源
问答
  • pgsql指定顺序排序
    千次阅读
    2013-12-02 17:18:41

    ORDER BY colname DESC NULLS FIRST / LAST

    FIRST表示空值排在前面;LAST表示空值排在后面

    更多相关内容
  • PostgreSQL 按指定顺序排序

    千次阅读 2021-07-12 11:31:29
    因为PostgreSql没有order by field 所以按照指定顺序排序就没有这么简单了,可以使用case when then进行排序 示例一 SELECT stage, pln_status FROM project ORDER BY CASE WHEN pln_status = '规划' THEN 1 ...

    因为PostgreSql没有order by field 所以按照指定的顺序排序就没有这么简单了,可以使用case when then进行排序

    示例一

    SELECT stage, pln_status
    FROM project
    ORDER BY CASE 
    	WHEN pln_status = '规划' THEN 1
    	WHEN pln_status = '初选' THEN 2
    	WHEN pln_status = '查勘' THEN 3
    	WHEN pln_status = '评审' THEN 4
    	WHEN pln_status = '批复' THEN 5
    	WHEN pln_status = '初设' THEN 6
    	WHEN pln_status = '开工' THEN 7
    END

    示例二

    SELECT *
    FROM person
    ORDER BY CASE constellation
    	WHEN '白羊' THEN 1
    	WHEN '金牛' THEN 2
    	WHEN '双子' THEN 3
    	WHEN '巨蟹' THEN 4
    	WHEN '狮子' THEN 5
    	WHEN '处女' THEN 6
    	WHEN '天秤' THEN 7
    	WHEN '天蝎' THEN 8
    	WHEN '射手' THEN 9
    	WHEN '摩羯' THEN 10
    	WHEN '水瓶' THEN 11
    	WHEN '双鱼' THEN 12
    END DESC
    展开全文
  • PostgreSql按照指定顺序排序

    千次阅读 2019-07-21 14:00:07
    因为PostgreSql没有order by field 所以按照指定顺序排序就没有这么简单了,可以使用case when then进行排序 select stage,pln_status from project ORDER BY case when pln_status = '规划' then 1 when pl....

    因为PostgreSql没有order by field 所以按照指定的顺序排序就没有这么简单了,可以使用case when then进行排序

            select stage,pln_status from project
            ORDER BY
            case
            when pln_status = '规划' then 1
            when pln_status = '初选' then 2
            when pln_status = '查勘' then 3
            when pln_status = '评审' then 4
            when pln_status = '批复' then 5
            when pln_status = '初设' then 6
            when pln_status = '开工' then 7
            end
    
    展开全文
  • 如何 让 sql 查询出来的 数据的排序 是按照 id 在 in () 列表中的顺序排序显示呢 ? 比如 : select * from tab where id in ( 1, 9 , 3,4, 8,5,6) ; 要按照 1,9,3,48,5,6 的顺序显示数据。 乍一看, 蒙圈...

    如何 让 sql 查询出来的 数据的排序 是按照 id 在 in () 列表中的顺序来排序显示呢 ?

    比如 : select * from tab where id in ( 1, 9 , 3,4, 8,5,6) ;

    要按照 1,9,3,48,5,6 的顺序显示数据。

    乍一看, 蒙圈了。 其本质 ,是按照 id 在列表中的位置 来排序。 知道了这个问题 的根本就好办了。

    网上 有现成的 mysql , oracle , sqlserver 的方法。

    mysql写法:

    SELECT * FROM EVENT WHERE eventId IN(443,419,431,440,420,414,509) ORDER BY INSTR(’,443,419,431,440,420,414,509,’,CONCAT(’,’,eventId,’,’))

    oracle写法:

    select name from order where oderid in(111,222,333,444,555,666)order by instr(‘111,222,333,444,555,666’,orderid)

    sqlserver写法:

    Select * From Product Where id in (1,1588,15782,9887,54) Order By charindex(’,’+ id +’,’, ‘,1,1588,15782,9887,54,’)

    那么PG 数据库的方法呢 ?

    发现pg 真是太牛逼。 我至少能写出 5种方法。

    select * from tab s(id)
    where id in (17,19,142867, 33)
    order by position(id::text in ‘17,19,142867, 33’) ;

    select * from tab where id in (17,19,142867, 33)
    order by position(’,’||id ::text||’,’ in ‘,’|| ‘17,19,142867, 33’||’,’ ) ;

    select * from tab
    where id in (17,19,142867, 33)
    order by array_positions(array[17,19,142867, 33],id ) ;

    select * from tab s(id)
    where id in (17,19,142867, 33)
    order by array_positions(‘{17,19,142867, 33}:: array[], id ) ;

    select * from tab
    where id = any(array[ 17,19,142867, 33])
    order by array_positions(‘{17,19,142867, 33}:: array[], id ) ;

    前面两种 是基于字符串的构建, 效率上有些慢。

    下面的基于 数值型 数组的方法 ,效率快很多。

    1. PostgreSQL
     select * from userinfo where name in ('Mark','Teddy','David','PaulD') order by  array_positions(array['Mark','Teddy','David','PaulD'],name ::text);
    

    select * from userinfo where name in (‘Mark’,‘Teddy’,‘David’,‘PaulD’)
    order by position(’,’||name ::text||’,’ in ‘,’|| array_to_string(Array[‘Mark’,‘Teddy’,‘David’,‘PaulD’],’,’) ||’,’);

    展开全文
  • PostgreSQL自定义排序

    2022-07-18 14:07:51
    业务场景:查询时将指定类型的表数据排在最前或最后,并根据多个字段排序 思路:使用 case when 语句自定义排序规则,该语句也可用于数据替换
  • select COLUMN_NAME from information_...其中,yyy表示postgre的模式名,xxx表示模式中的表名,ordinal_position表示原表中各字段的栏位信息,加了就可以返回跟原表栏位信息一模一样的顺序,否则就是乱序的。 ...
  • mybatis查询,按特定顺序排序

    千次阅读 2014-09-03 16:57:11
    在数据库的查询中我们可以使用order by实现按某个字段升序或者降序的排序,如果是要按照一个特定的顺序排序,用order by 就不行了,例如要按照id 是2、3、1这个顺序排序,显然用升序或者降序都不行,这里就要用到...
  • pgsql 自定义排序

    千次阅读 2018-04-24 10:14:28
    需求简述:用户要求查询数据表,使得输出结果指定中文字段chn_name按照自定义的顺序 电、水、风、火等顺序排序。 表内容: 自定义排序sql: 排序结果: 工作中遇到的sql查询案例,如果有更简便的查询sql,欢迎...
  • order by子句:按照哪些字段进行排序,窗口函数将按照排序后的记录顺序进行编号。可以和partition子句配合使用,也可以单独使用。 frame子句:frame是当前分区的一个子集,子句用来定义子集的规则,通常用来作为...
  • PostgreSql之pgsql 条件和顺序控制

    千次阅读 2015-05-09 11:28:00
    如果没指定else,并且没有一个表达式的结果是true,就会出现异常错误: 如: 错误: 没有找到CASE 提示: 在CASE语句结构中丢失ELSE部分 背景: 在CASE的第7行的PL/pgSQL函数doctor_test() *********...
  • 关于PostgreSql的指定中文排序问题

    千次阅读 2014-11-10 11:14:57
    PostgreSQL之前用的比较少,最近遇到的一个排序问题,
  • 排序指定字段的 Collate,同时将空值空串放最后: ORDER BY -- 空值置后 CASE WHEN name IS NULL THEN 1 ELSE 0 END, -- 空串置后 CASE name WHEN '' THEN 1 ELSE 0 END, -- 定义 COLLATE 为 "zh_CN.utf8" 用以...
  • select name,fieldname from yqhddamdatalist where type=0 AND IS_EXPORT =1 and fieldname in('CREATOR','BGQX','WJBT')order by instr('&aposCREATOR&apos,&aposBGQX&apos,&...
  • PostgreSQL如何修改表的字段顺序

    千次阅读 2021-07-05 10:08:15
    MySQL中我们可以使用类似下列的语句,在某个指定的字段后添加字段: alter table test add column c1 int after id; 那么在PostgreSQL是否可以实现类似的功能呢?或者说修改表当前的字段顺序呢? 比较简单的方法...
  • pgsql

    2020-10-13 17:23:16
    这里写目录标题 pgpool安装 pgsql流复制 备份与恢复 客户端验证 服务器设置及操作 服务器配置 监控数据活动 PostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES, Version 4.2为基础的对象关系型数据库管理...
  • 假设我们有张字段为id,name,age三个字段的表。需要将name=‘b’的记录按照id排序时放在查询结果的...如果多个字段排序的话,name = 'xxx' 的顺序不同,结果也是不同的,sql将按照order by后面的顺序输出。 经测试...
  • 数据库select的默认排序

    千次阅读 2021-01-20 23:57:44
    oracle对无order by的语句返回的结果不进行排序,oracle此时的处理方式是按照数据的物理存储顺序来读取数据。因为rowid是每行数据的地址,所以有时候看起来会像是使用rowid排序的。但这个顺序是可能被打乱的,在表的...
  • PostgreSQL的中文拼音排序(转载)

    千次阅读 2018-10-08 22:08:55
    前一段时间开发人员咨询,说postgresql里面想根据一个字段做中文的拼音排序,但是不得其解 环境: OS:CentOS 6.3 DB:PostgreSQL 9.2.4 TABLE: tbl_kenyon 场景: postgres=# \d tbl_kenyon Table &...
  • # 1:排序的基本使用方式 #按照工资从高到低显示数据 SELECT employee_id ,last_name ,salary FROM employees ...#如果没有指定排序顺序的化,就默认按照升序来进行排序,从小到大 SELECT employee_id,last_name,sal
  • PGSQL学习

    2020-07-20 15:11:35
    数据库1.1 数据库概述1.2 数据库类型2.PGSQL二、 安装部署1.windows上安装PGSQL2.Linux 上安装 PostgreSQL([菜鸟安装教程](https://www.runoob.com/postgresql/linux-install-postgresql.html))三.简单运用 一、...
  • 数据库默认排序

    2021-03-07 03:55:05
    Oralce:oracle对无order by的语句返回的结果不进行排序,oracle此时的处理方式是按照数据的物理存储顺序来读取数据。因为rowid是每行数据的地址,所以有时候看起来会像是使用rowid排序的。但这个顺序是可能被打乱的...
  • MySQL建库和建表时都可以用COLLATE关键词指定排序规则.比如WordPress:数据库:CREATE DATABASE IF NOT EXISTS `wordpress`DEFAULT CHARACTER SET utf8COLLATE utf8_general_ci;评论表:CREATE TABLE IF NOT EXISTS `wp...
  • 21.pgsql中的执行计划explain

    千次阅读 2020-03-04 21:19:03
     通常情况下散列表连接的效果比合并连接好,然而如果源数据上有索引,或者结果已经被排过序,在执行排序合并连接时就不需要排序了,这时合并连接的性能会优于是散列连接。 二、与执行计划相关的配置项 1....
  • 实例如下所示:$ids = [5,7,3,1,2];$data = Content::whereIn('id',$ids)-&...//查询结果是想按照wherein的顺序排序//正确写法$data = Content::whereIn('id',$ids)->select('id')// ->orderBy(\DB::raw('FIN...
  • PGSQL性能优化

    千次阅读 2020-04-10 15:39:47
    PGSQL性能优化 pgsql优化一般考虑2个指标,一个是响应时间,一个是吞吐量 pgsql的性能优化涉及到多个层面,有硬件,有操作系统,有文件系统 我们首先从硬件开始分析,主要分析CPU,内存,存储 一、CUP有不同的...
  • sql的 排序与分页

    2021-12-04 23:55:48
    # 如果没有使用排序操作,默认情况下查询返回的数据是按照添加数据的顺序显示的。 SELECT * FROM employees; # 1.1 基本使用 # 使用 ORDER BY 对查询到的数据进行排序操作。 # 升序:ASC (ascend) # 降序:DESC ...
  • 在数据库中NULL值是指UNKNOWN的值,不存储任何值,在排序时,它排在有值的行前面还是后面通过语法来指定。 例如 -- 表示null排在有值行的前面 select * from tbl order by id nulls first; -- 表示null排在有...
  • pgsql索引类型 PostgreSQL 提供了好几种索引类型:B-tree, Hash, GiST, GIN 。每种索引类型都比较适合某些特定的查询类型,因为它们用了不同的算法。缺省时,CREATE INDEX命令将创建一个 B-tree 索引,它适合大多数...
  • 是将查询的结果集按照指定顺序排序。 格式: FIELD(str,str1,str2,str3,...) 什么时候用: 想让某几个特定的字段值放在最后,用field()函数。 解释: str是字段名字,字符串str1,str2,str3等等,是该字段的值。 函数...
  • 每天都得来点没用的玩意默认为空的数据库字段导致SQL排序失效?追根溯源情景重现nulls first 和 nulls lastnulls first 和 nulls last 的影响最后给你们推荐一本书吧 默认为空的数据库字段导致SQL排序失效? 废话不...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,057
精华内容 422
关键字:

pgsql指定顺序排序