Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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
Python 如何先按带字母的字符串列排序?_Python_Postgresql_Sorting_Sqlalchemy - Fatal编程技术网

Python 如何先按带字母的字符串列排序?

Python 如何先按带字母的字符串列排序?,python,postgresql,sorting,sqlalchemy,Python,Postgresql,Sorting,Sqlalchemy,比如,我想按名称对记录进行排序,名称也可以从数字字母开始 如果我这样做的话 Something.query.order_by(Something.name) 我有以下命令: 连续第一名 33颗牙齿 测试版 热情的 如何将查询更改为在字母后添加数字: 测试版 热情的 连续第一名 33颗牙齿 在前导数字和前导非数字段中添加一个初始排序子句似乎有效: engine=sa.创建引擎(连接url) metadata=sa.metadata() mytable=sa.Table('mytable',

比如,我想按名称对记录进行排序,名称也可以从数字字母开始

如果我这样做的话

Something.query.order_by(Something.name)
我有以下命令:

  • 连续第一名
  • 33颗牙齿
  • 测试版
  • 热情的
如何将查询更改为在字母后添加数字:

  • 测试版
  • 热情的
  • 连续第一名
  • 33颗牙齿

在前导数字和前导非数字段中添加一个初始排序子句似乎有效:

engine=sa.创建引擎(连接url)
metadata=sa.metadata()
mytable=sa.Table('mytable',元数据,自动加载=True,自动加载=engine)
# 1. 默认排序
stmt=sa.sql.select([mytable.c.thing])\
.从(mytable)中选择\
.订购人(mytable.c.thing)
使用engine.begin()作为conn:
打印(conn.execute(stmt.fetchall())
#[(‘排在第一位’,(‘99啤酒’,),(‘测试版’,),(‘活力’,)]
# 2. 非数字优先
sort_boundary='9'*mytable.c.thing.type.length
打印(排序边界)
# 99999999999999999999999999999999999999999999999999
#
stmt=sa.sql.select([mytable.c.thing])\
.从(mytable)中选择\
.订购人(mytable.c.物品)