首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按数字将行拆分为多行

按数字将行拆分为多行
EN

Stack Overflow用户
提问于 2019-05-21 10:51:45
回答 1查看 44关注 0票数 0
代码语言:javascript
运行
复制
SELECT * FROM foo

返回类似如下的内容

代码语言:javascript
运行
复制
name | price | value
foo  | 1     | 3
foo  | 2     | 2

我想要接收:

代码语言:javascript
运行
复制
name | price | value | record
foo  | 1     | 3     | row1
foo  | 1     | 3     | row2
foo  | 1     | 3     | row3
foo  | 2     | 2     | row1
foo  | 2     | 2     | row2

我该怎么做呢?

EN

Stack Overflow用户

发布于 2019-05-21 10:55:44

好的,我试着理解你想要的是什么,你只是想按价格和价值对你的行进行排序,对吗?如果是这样,只需使用order by子句,如下所示:

代码语言:javascript
运行
复制
select * from foo order by price, value;

好的,reEdit我的答案如下,如果你使用PostgreSQL,事情将会非常简单。

代码语言:javascript
运行
复制
select * from foo;
 name | price | value 
------+-------+-------
 foo  | 1 | 3
 foo  | 2 | 2
(2 rows)


select
    name,
    price,
    generate_series(1,value,1) as series_number
from
    foo;
 name | price | series_number 
------+-------+---------------
 foo  |     1 |             1
 foo  |     1 |             2
 foo  |     1 |             3
 foo  |     2 |             1
 foo  |     2 |             2
(5 rows)


select name,price,value from (
 select
     name,
     price,
     value,
     generate_series(1,value,1) as series_number
 from
     foo
) tmp order by price, value;
 name | price | value 
------+-------+-------
 foo  |     1 |     3
 foo  |     1 |     3
 foo  |     1 |     3
 foo  |     2 |     2
 foo  |     2 |     2
(5 rows)

而mysql完成这一任务的方法似乎要复杂得多,请看这里:https://dba.stackexchange.com/questions/75785/how-to-generate-a-sequence-in-mysql

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56230453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档