Mir*_*ain 1 sql sql-server sql-server-2008
当我在Prse ='h'写道时,where子句不能与WITH一起使用 它会显示错误'无效列'
;with cT(FLDID ,FLD10 ,FLD610)
as
(
select * from Table556
inner join Table555 on table555.FLD9=FLD318
where FLD610=150
)
select case when fld609 <=12 then 'h' else 's' end as Prse,* from cT
where Prse ='h'
Run Code Online (Sandbox Code Playgroud)
该with有什么用它做.您只是Prse在最后一个SELECT子句中引入- 并且您不能从该WHERE子句引用这些列(因为之前WHERE逻辑运行). SELECT
你想要的是:
;with cT(Prse, FLDID ,FLD10 ,FLD610)
as
(
select case when fld609 <=12 then 'h' else 's' end as Prse, * from Table556
inner join Table555 on table555.FLD9=FLD318
where FLD610=150
)
select * from cT
where Prse ='h'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |