Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PostgreSQL:将字母排序在数字之前_Postgresql_Sql Order By - Fatal编程技术网

PostgreSQL:将字母排序在数字之前

PostgreSQL:将字母排序在数字之前,postgresql,sql-order-by,Postgresql,Sql Order By,我想按以下顺序(先按a-z顺序,然后按数字顺序)订购bpchar列: 我怎样才能做到呢 谢谢你从你的问题看不出你到底想要什么。如果它是要检查其是数字还是字母的字符串的第一个字符,则可以像下面这样使用orderby中的CASE表达式 select * FROM t ORDER BY CASE WHEN col ~ '^[a-zA-Z]' THEN 1 WHEN col ~ '^[0-9]' THEN 2

我想按以下顺序(先按a-z顺序,然后按数字顺序)订购bpchar列:

我怎样才能做到呢


谢谢你

从你的问题看不出你到底想要什么。如果它是要检查其是数字还是字母的字符串的第一个字符,则可以像下面这样使用
orderby
中的
CASE
表达式

select * FROM t ORDER BY
          CASE 
             WHEN col ~ '^[a-zA-Z]' THEN 1
             WHEN col ~ '^[0-9]'    THEN 2
           END,col;

无法从你的问题中完全看出你真正想要什么。如果它是要检查其是数字还是字母的字符串的第一个字符,则可以像下面这样使用
orderby
中的
CASE
表达式

select * FROM t ORDER BY
          CASE 
             WHEN col ~ '^[a-zA-Z]' THEN 1
             WHEN col ~ '^[0-9]'    THEN 2
           END,col;

谢谢,是的,就是这样!谢谢,是的,就是这样!