sql语句怎么写

sql语句怎么写,第1张

你好,可以这样书写代码。
select date as '日期',vip as '每日会员增加个数', vipcount as '会员总个数' from user
其中的列名记得换成你的。

--就你所述需求,在SQLServer2000环境下,语句如下:
SELECT [姓名],
SUM(CASE [科目] WHEN '语文' THEN [成绩] END) AS [语文],
SUM(CASE [科目] WHEN '数学' THEN [成绩] END) AS [数学],
SUM(CASE [科目] WHEN '英语' THEN [成绩] END) AS [英语]
FROM TableName
GROUP BY [姓名]
GO
--在SQLServer2005或更高版本环境下,语句还可以如下格式(效率更高噢):
SELECT [姓名], [语文], [数学], [英语]
FROM TableName
PIVOT(SUM([成绩]) FOR
[姓名] IN([语文], [数学], [英语])) AS T
GO
--另外说一下,表设计是否合理不能一概而论,不同的结构有不同的用法,具体要看需求。
--你这个还是相对较合理,而且毕竟就算要行转列也不会大幅影响效率
-- powerbuildre所说的应该加一个学号列倒是应该甚至必须的,这样姓名列就可以除去了,而且也一般是把学号当做外键关系来匹配的。至于他写的这个句子,数据库引擎处理逻辑上是把原表进行四倍的笛卡尔积运算,然后匹配where字句,也就是说假设表原来有1000行数据,它会运算成1000100010001000行的一个虚拟表然后匹配where字句,效率极低;只是SQLServer2000及更新版本会自动优化成四个表的inner join也就是内联查询的关系。数据量小的话,效率可能不怎么能轻易看出来,但是数据量一大,很容易拖垮服务器。这是一种极不推荐的写法,换句话说,如果你用这种语法面试,可能当场就会被pass掉了。
想学SQLServer啊?QQ:316784428
一起交流啊,我也是完全从自学开始一步一步走到今天的~!


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12821521.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存