原始表数据 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
希望有人能帮到我谢谢! 展开
addr prod
北京 A,B,C
上海 B,C
显示这么一个结构
company prod
北京 A
北京 B
北京 C
上海 B
上海 C
希望有人能帮到我谢谢! 展开
3个回答
展开全部
行转列
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 原始表
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 存在一个字段里了。
展开全部
如果两个表没有任何关联,就用UNION ALL !有关联就用JOIN
SELECT A,B,C FROM name1 UNION ALL SELECT B,C,'' FROM name2
SELECT A,B,C FROM name1 UNION ALL SELECT B,C,'' FROM name2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select name1 A name1 B name1 C name2 B name C
from table
就这样啊
from table
就这样啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询