根据多个条件从db表中选择值

时间:2013-11-11 09:03:13

标签: sql

我希望通过查询获得有组织的数据

表1:

Name     Val     Pid
CA1      2      123
CA2      3      123
CA3      9      123
CA5      6      123
CA4      3      123

我想编写一个查询,它只为父ID提供Val,但采用结构化格式,

我希望得到像2 3 9 3 6

这样的值

如果我这样做

select val from table1 where pid='123'

我会得到2 3 9 6 3格式为CA1,CA2,CA3,CA5,CA4

所需的输出: 但我想要2 3 9 3 6中的值,其格式为 CA1,CA2,CA3,CA4,CA5

结果应该是给定pid的结构化格式,而不管它如上所述存储在Name列中的顺序。

3 个答案:

答案 0 :(得分:1)

如果您希望单独使用名称,则可以使用ORDER BY子句

select * from table1 order by Name asc

答案 1 :(得分:0)

SELECT 
    GROUP_CONCAT(Val ORDER BY Name ASC SEPARATOR  ' ') 
FROM  
    tablename 
WHERE 
     Pid = '123'
GROUP BY 
     Pid;

http://sqlfiddle.com/#!2/156ca/11

演示

答案 2 :(得分:0)

试试这个......

select val from table1 where pid='123' order by Name asc

或所有列

select * from table1 where pid='123' order by Name asc