sql with后只能跟select关键字吗?
@zzxbg bit = 1ASBEGINSET NOCOUNT ON; WITH tb(Invoice_No, chxi, ForAccountof, NotifyParty, Consignee, gs) AS ( SELECT a.Invoice_No, a.chxi, c.ForAccountof, c.NotifyParty, c.Consignee, c.gs from tb1 ) if zzxbg = 1 begin .... endEND
@zzxbg bit = 1ASBEGINSET NOCOUNT ON; WITH tb(Invoice_No, chxi, ForAccountof, NotifyParty, Consignee, gs) AS ( SELECT a.Invoice_No, a.chxi, c.ForAccountof, c.NotifyParty, c.Consignee, c.gs from tb1 )--可以这样 select case @zzxbg when 1 then '' else '' endEND
[解决办法]
不是只能接select
是with 定义了表达式后马上要使用,例如:
declare @t table(id int);with m as (select 1 as col)insert into @t select * from m
[解决办法]
定义公用表表达式后,须对其进行引用。 (语法限定)