2013-03-06 112 views
1

是否有一种方法可以在不使用存储过程的情况下遍历SQL中的数组?比如给定:SQL迭代通过数组

a | b 
--+------ 
a | {1,2} 

我想给数组各行扁平化,如:

a | b 
--+--- 
a | 1 
a | 2 

澄清:我试图做到这一点Postgres里,并正在寻找一个纯SQL解决方案,而不是使用存储过程。如果我错了,请纠正我的错误,但我认为这在以前的问题中没有解决。谢谢!

+0

RDBMS是什么? [一种可能的方式](https://www.ibm.com/developerworks/mydeveloperworks/blogs/SQLTips4DB2LUW/entry/how_to_split_a_string_into_a_set_of_rows_anti_listagg12?lang=en),[和另一种](http://microsoft-ssis.blogspot.com/ 2012/11/split-multi-value-column-into-multiple.html) – xQbert 2013-03-06 15:03:40

+0

@ muistooshort,是的,我的错误。你如何解除删除? – Ben 2013-03-07 13:55:34

+0

@Ben:我不认为你可以,也许检查http://meta.stackoverflow.com/。无论如何,它需要五票才能结束,所以希望人们有责任,并在同意你的意见之前阅读评论:)我敢肯定,我们都做出了错误的近亲选票。 – 2013-03-07 18:21:16

回答

2

很简单

select a, unnest(b) 
from t