原始表数据 name1 A,B,C name2 B,C现在要得到name1 A name1 B name1 C name2 B name C的数据,sql查询语句

附上表结构以及查询结构结果addrprod北京A,B,C上海B,C显示这么一个结构companyprod北京A北京B北京C上海B上海C希望有人能帮到我谢谢!... 附上表结构以及查询结构结果
addr prod
北京 A,B,C
上海 B,C
显示这么一个结构
company prod
北京 A
北京 B
北京 C
上海 B
上海 C
希望有人能帮到我谢谢!
展开
 我来答
thiz_linux
2012-01-06 · TA获得超过3万个赞
知道大有可为答主
回答量:4667
采纳率:0%
帮助的人:3304万
展开全部
行转列

select
sum(decode(name1,'a','a',null)),
sum(decode(name1,'b','b',null)),
sum(decode(name1,'c','c',null)),
sum(decode(name2,'b',b,null)),
sum(decode(name2,'c',c,null))
from 原始表
追问
sql server 中貌似没有decode函数
追答
你是想把prod 一个字段里存的内容给拆成多行,
这不是简单的几个sql能完成的,的通过存储过程编程,通过循环字符串处理,拆开之后建立临时表,才能完成。

如果真有这样的需求,那就是当时那个表设计的就有问题,怎么能把多重属性存在一个字段里,尽量一个字段存一个属性。

比如这样的
addr prod1 prod2 prod3
北京 A B C
上海 B C null

如果是这样设计的表,ABC存在三个字段里, 就可以通用一个sql语句转换成你想要的形式了, 很简单用 union 关键字就能实现。
但是你是把 A ,B, C 存在一个字段里了。
lrmlry
2012-01-07 · TA获得超过586个赞
知道小有建树答主
回答量:597
采纳率:0%
帮助的人:413万
展开全部
如果两个表没有任何关联,就用UNION ALL !有关联就用JOIN
SELECT A,B,C FROM name1 UNION ALL SELECT B,C,'' FROM name2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mengjiewoai
2012-01-06 · TA获得超过190个赞
知道小有建树答主
回答量:102
采纳率:0%
帮助的人:123万
展开全部
select name1 A name1 B name1 C name2 B name C
from table
就这样啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式