首页 新闻 赞助 找找看

各位大神帮帮忙这个sql语句怎么写

0
悬赏园豆:20 [已解决问题] 解决于 2017-04-21 14:50

我要的结果是 1243  以这个顺序展示出来  这个sql语句怎么写?

问题补充:

这些数据只是为了此问题写的测试数据   真正的数据有好多的至少也有几百条

一个点的未来的主页 一个点的未来 | 菜鸟二级 | 园豆:204
提问于:2017-04-21 13:11
< >
分享
最佳答案
0

select * from (select t.*, t.ID || t.PAERNT_ID sort from table t) order by sort

收获园豆:20
刘宏玺 | 专家六级 |园豆:14020 | 2017-04-21 13:24

哥,好像有点问题  用您这条sql语句查出的结果是这样的:

一个点的未来 | 园豆:204 (菜鸟二级) | 2017-04-21 13:34

@一个点的未来: 写反了

select * from (select t.*, t.PAERNT_ID || t.ID sort from table t) order by sort

刘宏玺 | 园豆:14020 (专家六级) | 2017-04-21 13:35

@刘宏玺: 额  好像还不对   是我搞错了吗?  结果还是这样:

一个点的未来 | 园豆:204 (菜鸟二级) | 2017-04-21 13:41

@一个点的未来: 你给我截这个图我理解不了啊错在哪里呢?我估计是文本排序的问题

 

select * from (select t.*, to_number(t.PAERNT_ID || '.' || t.ID) sort from table t) order by sort

刘宏玺 | 园豆:14020 (专家六级) | 2017-04-21 13:46

@刘宏玺: 哥是这样的  可能我的题没有说明白   真正的数据不 test1,test2……这样的   我题目中那个截图是我给这个问题随便写的测试数据  也就是说不能根据文字进行排序  sorry啊  题没说清

一个点的未来 | 园豆:204 (菜鸟二级) | 2017-04-21 13:50

@一个点的未来: 新写的sql测试了没?我估计没有问题了

刘宏玺 | 园豆:14020 (专家六级) | 2017-04-21 13:51

@刘宏玺: 这是新写的sql语句测试结果:

一个点的未来 | 园豆:204 (菜鸟二级) | 2017-04-21 13:56

@一个点的未来: 你的id最大有几位?

刘宏玺 | 园豆:14020 (专家六级) | 2017-04-21 13:57

@刘宏玺: 这个不确定   因为这个数据用户是可以添加的  

一个点的未来 | 园豆:204 (菜鸟二级) | 2017-04-21 13:58

@一个点的未来: 

select * from (select t.*, to_number(t.PAERNT_ID || '.' || lpad(t.ID,10,'0')) sort from table t) order by sort

刘宏玺 | 园豆:14020 (专家六级) | 2017-04-21 14:02

@刘宏玺: 这是这条语句的效果:

一个点的未来 | 园豆:204 (菜鸟二级) | 2017-04-21 14:05

@一个点的未来: 你的id是文本类型的?

刘宏玺 | 园豆:14020 (专家六级) | 2017-04-21 14:06

@一个点的未来: select * from (select t.*, to_number(t.PAERNT_ID || '.' || lpad(to_number(t.ID),10,'0')) sort from table t) order by sort

刘宏玺 | 园豆:14020 (专家六级) | 2017-04-21 14:06

@刘宏玺: id 是 INTEGER 类型的   我要结果是以这种形式展示:

一个点的未来 | 园豆:204 (菜鸟二级) | 2017-04-21 14:10

@一个点的未来: 之前方向搞错了,重来

 

select * from (select t.*, to_number(case when PAERNT_ID = 0 then  t.ID || '.' || t.PAERNT_ID else t.ID end) sort from table t) order by sort

刘宏玺 | 园豆:14020 (专家六级) | 2017-04-21 14:14

@刘宏玺:报错了:

一个点的未来 | 园豆:204 (菜鸟二级) | 2017-04-21 14:18

@一个点的未来: 

select * from (select t.*, case when PAERNT_ID = 0 then to_number(t.ID || '.' || t.PAERNT_ID) else t.ID end sort from table t) order by sort

刘宏玺 | 园豆:14020 (专家六级) | 2017-04-21 14:19

@刘宏玺: 好像是没有反应:

一个点的未来 | 园豆:204 (菜鸟二级) | 2017-04-21 14:24

@一个点的未来: 你给我看下PAERNT_ID有值的数据

刘宏玺 | 园豆:14020 (专家六级) | 2017-04-21 14:33

@刘宏玺: 

这里面  最后两条就有值

一个点的未来 | 园豆:204 (菜鸟二级) | 2017-04-21 14:39

@一个点的未来: 又写反了

 


select * from (select t.*, case when PAERNT_ID != 0 then to_number(t.PAERNT_ID || '.' || t.ID) else t.ID end sort from table t) order by sort

刘宏玺 | 园豆:14020 (专家六级) | 2017-04-21 14:42

@刘宏玺:  大神  非常感谢  出来了 

非常感谢  

真正的大神啊

一个点的未来 | 园豆:204 (菜鸟二级) | 2017-04-21 14:48
其他回答(2)
0
(select * from xxx where id = 1)
union
(select * from xxx where id = 2)
union
(select * from xxx where id = 4)
union
(select * from xxx where id = 3)

 

或加个sort字段

狼爷 | 园豆:1204 (小虾三级) | 2017-04-21 13:37

哦哦  没用过sort字段  我去查查

支持(0) 反对(0) 一个点的未来 | 园豆:204 (菜鸟二级) | 2017-04-21 13:42

我的数据不止这4条   这是我写的一个测试数据    这个数据至少几百条  用sort也可以吗

支持(0) 反对(0) 一个点的未来 | 园豆:204 (菜鸟二级) | 2017-04-21 13:44

@一个点的未来: 是自己再加一个sort字段,不是SQL自带的

支持(0) 反对(0) 狼爷 | 园豆:1204 (小虾三级) | 2017-04-21 14:20

@一个点的未来: 我有点怀疑你没理解产品的需求

支持(0) 反对(0) 狼爷 | 园豆:1204 (小虾三级) | 2017-04-21 14:21

@编程点滴: 先不考虑产品需求  现在就考虑怎么得到这个结果

支持(0) 反对(0) 一个点的未来 | 园豆:204 (菜鸟二级) | 2017-04-21 14:38

问题解决了  谢谢

支持(0) 反对(0) 一个点的未来 | 园豆:204 (菜鸟二级) | 2017-04-21 14:49
0

不是很明白的你的意思?

你要的数据1  2  4  3没有规则可言,先清除的表达你的需求!

奈何一笑 | 园豆:439 (菜鸟二级) | 2017-04-21 14:14

parent_id和id是有关系的:

支持(0) 反对(0) 一个点的未来 | 园豆:204 (菜鸟二级) | 2017-04-21 14:21

@一个点的未来: select id,contat(parent_id,id) seq from table order by seq

 

 

注意下 parent_id 为空的时候,联合效果是:null 1  ---- 1   而不是   null1,如果搞不定,可以将null替换为""

支持(0) 反对(0) 奈何一笑 | 园豆:439 (菜鸟二级) | 2017-04-21 14:42

@半杯不醉: parent_id 为空的时候是0  默认是0   

这个问题解决了   谢谢  非常感谢

支持(0) 反对(0) 一个点的未来 | 园豆:204 (菜鸟二级) | 2017-04-21 14:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册