首页 新闻 会员 周边

sql server中这一句怎么没有select

0
悬赏园豆:5 [已解决问题] 解决于 2013-03-17 13:37
DECLARE @S NVARCHAR(1000)
SELECT @S='SELECT [USER_NAME] AS 姓名'
SELECT @S=@S+',SUM(CASE WHEN COURSE='''+CAST(COURSE AS VARCHAR)+'''THEN SCORE END) AS '+COURSE FROM TEST_TB_GRADE GROUP BY COURSE
SELECT @S=@S+' FROM TEST_TB_GRADE GROUP BY [USER_NAME]'
EXEC(@S)

--这一句怎么没有select
SUM(CASE WHEN COURSE='''+CAST(COURSE AS VARCHAR)+'''THEN SCORE END) AS '+COURSE FROM TEST_TB_GRADE GROUP BY COURSE
小银光的主页 小银光 | 初学一级 | 园豆:25
提问于:2013-03-16 22:43
< >
分享
最佳答案
0

简化下: [USER_NAME] AS 姓名=姓名,‘SUM(CASE WHEN COURSE='''+CAST(COURSE AS VARCHAR)+'''THEN SCORE END) AS '+COURSE =COURSE,

SELECT @S='SELECT 姓名,COURSE FROM TEST_TB_GRADE GROUP BY COURSE and GROUP BY [USER_NAME]'

收获园豆:3
伏草惟存 | 小虾三级 |园豆:1420 | 2013-03-17 11:35

兄弟,你这一搞我跟看不懂了。。。。。。

小银光 | 园豆:25 (初学一级) | 2013-03-17 11:39

@小银光: AS用法知道吧!就是 查询[USER_NAME] AS(名称作为) 姓名。简化查询。这个sql语句就是查询USER_NAME和COURSE从TEST_TB_GRADE 表中。最后按照COURSE和USER_NAME进行分组查询。这么个逻辑。

伏草惟存 | 园豆:1420 (小虾三级) | 2013-03-17 11:44

@卿君: 我自己已经想明白了。

SELECT @S=@S+',SUM(CASE WHEN COURSE='''+CAST(COURSE AS VARCHAR)+'''THEN SCORE END) AS '+COURSE FROM TEST_TB_GRADE GROUP BY COURSE

这个FROM对应的是前面的SELECT,这个SELECT是查询的作用,

@S=@S+是将查询的值拼成一个字符串!
小银光 | 园豆:25 (初学一级) | 2013-03-17 11:59

@小银光: 恩恩,是的

伏草惟存 | 园豆:1420 (小虾三级) | 2013-03-17 13:26
其他回答(2)
0

这是拼接一个T-sql的字符串

收获园豆:1
陈希章 | 园豆:2538 (老鸟四级) | 2013-03-17 07:42
0

拼接的sql中不是有 select啊

收获园豆:1
chenping2008 | 园豆:9836 (大侠五级) | 2013-03-17 10:14

虽然这么说,但他有两个FROM!

支持(0) 反对(0) 小银光 | 园豆:25 (初学一级) | 2013-03-17 10:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册