看下我这个sql错在哪?主要想学with as的用法
本帖最后由 wangbiao_97 于 2012-11-07 14:43:58 编辑
with tb1 as
(select name as '姓名', 科目='语文', 语文 as result from [Temp].[dbo].[行转列]),
with tb2 as
(select name as '姓名', 科目='数学', 数学 as result from [Temp].[dbo].[行转列]),
with tb3 as
(select name as '姓名', 科目='物理', 物理 as result from [Temp].[dbo].[行转列])
select * from
(select * from tb1
union all
select * from tb2
union all
select * from tb3 ) tb4
报错
消息 156,级别 15,状态 1,第 4 行
关键字 'with' 附近有语法错误。
消息 319,级别 15,状态 1,第 4 行
关键字 'with' 附近有语法错误。如果此语句是公用表表达式或 xmlnamespaces 子句,那么前一个语句必须以分号结尾。
消息 102,级别 15,状态 1,第 5 行
',' 附近有语法错误。
消息 319,级别 15,状态 1,第 6 行
关键字 'with' 附近有语法错误。如果此语句是公用表表达式或 xmlnamespaces 子句,那么前一个语句必须以分号结尾。
------最佳解决方案--------------------WITH tb1
AS ( SELECT name AS '姓名' ,
科目 = '语文' ,
语文 AS result
FROM [Temp].[dbo].[行转列]
),
tb2
AS ( SELECT name AS '姓名' ,
科目 = '数学' ,
数学 AS result
FROM [Temp].[dbo].[行转列]
),
tb3
AS ( SELECT name AS '姓名' ,
科目 = '物理' ,
物理 AS result
FROM [Temp].[dbo].[行转列]
)
SELECT *
FROM ( SELECT *
FROM &nb