读书人

看上小弟我这个sql错在哪?主要想学wi

发布时间: 2012-12-14 10:33:08 作者: rapoo

看下我这个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 tb1
UNION ALL


SELECT *
FROM tb2
UNION ALL
SELECT *
FROM tb3
) tb4


[其他解释]
多个CTE不能有多个with
[其他解释]
引用:
SQL code12345678910111213141516171819202122232425262728WITH tb1 AS ( SELECT name AS '姓名' , 科目 = '语文' , 语文 AS result ……


你速度真快,谢谢,是对的 。
[其他解释]
首先:with的前面你掉了 ; (分号)


然后,如果你想用多个with,那么语法是:with tmp as() tmp2 as() 。。。


未完待续


[其他解释]
引用:
首先:with的前面你掉了 ; (分号)


然后,如果你想用多个with,那么语法是:with tmp as() tmp2 as() 。。。


未完待续
如果with前面没有其他语句,可以不加;,如果有,必须加
[其他解释]
引用:
引用:首先:with的前面你掉了 ; (分号)


然后,如果你想用多个with,那么语法是:with tmp as() tmp2 as() 。。。


未完待续如果with前面没有其他语句,可以不加;,如果有,必须加



我感觉还是加着好,反正加它一定不错,但是不加就可能错!

保险起见!

像这样:我在sql里面写with,但是with前面有select * from kaoqinB
select * from kaoqinA

尽管这跟with不大噶,但是要是不加它会提示,缺少分号!



[其他解释]
引用:
引用:
引用:首先:with的前面你掉了 ; (分号)


然后,如果你想用多个with,那么语法是:with tmp as() tmp2 as() 。。。


未完待续如果with前面没有其他语句,可以不加;,如果有,必须加


我感觉还是加着好,反正加它一定不错,但是不加就可能错!

保险起见!……
你的博客我回复了
[其他解释]
引用:
引用:引用:
引用:首先:with的前面你掉了 ; (分号)


然后,如果你想用多个with,那么语法是:with tmp as() tmp2 as() 。。。


未完待续如果with前面没有其他语句,可以不加;,如果有,必须加


我感觉还……


谢谢 花 神

你好多的花,我就一个小三角!
[其他解释]
我也“花”了好多时间

读书人网 >SQL Server

热点推荐