文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

数据库多行转换为单一列

2021-06-02 06:19

关注

数据库多行转换为单一列

数据库存储与实际显示需求不一样时,我们得写SQL来实现数据呈现:

如:

 

先来看看数据表:

 

CREATE TABLE [dbo].[Expenses]
(
    [Date] DATE,
    [Description] NVARCHAR(40),
    [Charge] DECIMAL(18,2)
)
GO
Source Code

 

然后,我们为表填充一些数据,比如春节购买开支:

 

INSERT INTO [dbo].[Expenses] ([Date],[Description],[Charge]) VALUES 
("2020-01-22",N"鱿鱼",305.40),
("2020-01-22",N"猪肉",110.60),
("2020-01-22",N"青菜",36.90),
("2020-01-22",N"",30.00),
("2020-01-22",N"",75.00),

("2020-01-23",N"鱿鱼",200.40),
("2020-01-23",N"猪肉",50.00),
("2020-01-23",N"青菜",14.30),
("2020-01-23",N"",30.00),
("2020-01-23",N"",20.00),

("2020-01-24",N"鱿鱼",460.00),
("2020-01-24",N"猪肉",200.00),
("2020-01-24",N"青菜",90.00),
("2020-01-24",N"",50.00),
("2020-01-24",N"",300.00)

GO
Source Code

 

所有数据准备完毕,现在写SQL来实现此功能:

 

SELECT E1.[Date],E1.[Charge] AS N"鱿鱼",E2.[Charge] AS N"猪肉",E3.[Charge] AS N"青菜",E4.[Charge] AS N"", E5.[Charge] AS N""  FROM
[dbo].[Expenses] AS E1,[dbo].[Expenses] AS E2,[dbo].[Expenses] AS E3,[dbo].[Expenses] AS E4,[dbo].[Expenses] AS E5
WHERE E1.[Date] = E2.[Date] AND E2.[Date] = E3.[Date] AND E3.[Date] = E4.[Date] AND E4.[Date] = E5.[Date]
AND E1.[Description] = N"鱿鱼" AND E2.[Description] = N"猪肉" AND E3.[Description] = N"青菜" AND E4.[Description] = N"" AND E5.[Description] = N""  
GO
Source Code

 

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯