【发布时间】:2014-10-15 01:12:24
【问题描述】:
如何获取一些列被查询并表现为行的表?
源表
ID | Name | Funct | Phone1 | Phone2 | Phone3
1 | John | boss | 112233 | 114455 | 117788
2 | Jane | manager | NULL | NULL | 221111
3 | Tony | merchant | 441100 | 442222 | NULL
想要的结果
ID | Name | Funct | Phone | Ord
1 | John | boss | 112233 | 1
1 | John | boss | 114455 | 2
1 | John | boss | 117788 | 3
2 | Jane | manager | 221111 | 3
3 | Tony | merchant | 441100 | 1
3 | Tony | merchant | 442222 | 2
Ord 是一列,其中是原始列的订单号 (Phone1...Phone3)
已编辑:
好的,UNION 当电话号码在单独的列中时会很好,但如果源在后面(一列中的所有数字)怎么办?:
ID | Name | Funct | Phones
1 | John | boss | 112233,114455,117788
2 | Jane | manager | 221111
3 | Tony | merchant | 441100,442222
我明白了,Ord 的列是无意义的(所以在这种情况下忽略它),但是如何将数字拆分为分隔行?
【问题讨论】:
-
如果您知道每个客户有 3 部手机,那么 UNION ALL 是一个不错的选择
标签: sql sql-server querying