sql - 我如何订购商品和子商品?

标签 sql postgresql select sql-order-by

我有 table :

CREATE TABLE lc (
    id CHARACTER(4),
    name TEXT
);

“id”列在有item和subitem的地方有code值,例如:

元素

1, 2, 3 ... 10, 11 ...

子项目:

101, 102, 201, 301 ... 1001, 1002, 1101 ...

其中,101是1的子项,201是2的子项,1001是10的子项,以此类推。

如何使用“Order By”并获得以下订单:

1
101
102
2
201
...
10
1001
1002
11
1101
...

最佳答案

你可以使用这个:

select *
from lc
order by case when id::int < 100 then (id::int::text || '00')::int else id::int end

但是,您的表格确实需要重新设计。

关于sql - 我如何订购商品和子商品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54012367/

相关文章:

sql - MS Access Form - 文本框中的字符串,用于 LIKE 查询以过滤报告结果

python - 将表数据从一个数据库复制到另一个数据库

php - 从数据库中获取最新条目

php - MYSQL PHP : Check already made query for distinct field values?

sql - 如何更新仅显示一次的列中的值?

mysql - 数据库设计 - 用于层次结构建模的表设计

php - MySQL 进行平均计算并输出到 php 变量中

postgresql - 使用 Inet 类型 Postgres 10.4 时 Ipv6 地址存储不同

android - Sqitch 使用 sqitch 抛出 fe_sendauth(无密码)错误

mysql - C:MySQL SELECT 的动态结果集