SQL里面如何将竖着的列横着显示

card_nodatatime18日期时间118日期时间2怎么显示成card_nodatatime1time218日期时间1时间2... card_no data time
18 日期 时间1
18 日期 时间2
怎么显示成
card_no data time1 time2
18 日期 时间1 时间2
展开
 我来答
匿名用户
2014-11-14
展开全部
一般这样的情况 如果是我做的话 就预先建立一个表 设置time1 time1 time3……
然后 分别逐次以 no 和日期为 time 分组 ;行标题 time 为列标题 和 值(求和)……对先前建立的表进行追加……
SQL 我不太熟悉 在access 中 完全可以做的……
还有 如果 你能够 把你的时间 划分成不同的时间段 而对应到固定的时间段中的话,完全 直接可以使用 一个交叉查询就可以了……
但愿 这个提示 对你有所帮助……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
日落的糖Kf
2018-04-27 · TA获得超过4万个赞
知道大有可为答主
回答量:3400
采纳率:0%
帮助的人:546万
展开全部

这个是一个行列转换问题,你应该学习一下行列转换的知识。

sqlserver行列转换知识分享

使用以上知识,可以得到

------------------------------------------

card_no,data,[时间1],[时间2]

------------------------------------------

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
SDMG123
2018-05-04 · TA获得超过6178个赞
知道大有可为答主
回答量:6676
采纳率:80%
帮助的人:699万
展开全部
使用PIVOT函数
PIVOT(<聚合函数>([聚合列值]) FOR [行转列前的列名] IN([行转列后的列名1],[行转列后的列名2],[行转列后的列名3],.......[行转列后的列名N]))
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
拂袖听风
2018-05-04 · 超过43用户采纳过TA的回答
知道小有建树答主
回答量:130
采纳率:85%
帮助的人:57.5万
展开全部
select a.card_no,a.date,a.time time1,b.time time2 from t a inner join t b on a.card_no=b.card_no and a.date=b.date and a.time<b.time
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
清茶稀饭
2014-11-14 · 知道合伙人软件行家
清茶稀饭
知道合伙人软件行家
采纳数:520 获赞数:3575
2009年,大学计算机信息科学与技术专业毕业, java行业从5年经验,各大数据库都精通,也会其他软件技术。

向TA提问 私信TA
展开全部
这个就是通用的行变列方法。
以下是代码:
select distinct
time=stuff((select ','+time from 表名 for xml path('')),1,1,'')
from 表名 t
group by time
追问

好像不是我想要的效果,你那代码执行下来是这样的,

我想要:

card_no    data        time1     time2
18            日期          时间1    时间2

这种样子的,能麻烦看下吗,非常谢谢。

追答
上面表头都变上去这样是没有的,只能把他们集合到一起。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式