TSQL:如果语句在With语句中

Rad*_*u D 0 sql t-sql sql-server

我的问题是我想合并两个SP.产生的sp的骨架是:

 with Paging(RowNo, ID, Name, Description, LengthSeconds, Rating, Url, ThumbnailFileName, AddedAt) AS
    (
     (if(@SortType is null)
      begin
         ... select ... 
      end
      else 
      begin
        ... select...
      end
    )

   select * from Paging ... 
Run Code Online (Sandbox Code Playgroud)

如果在with声明中,我可以这样做吗?

gbn*_*gbn 8

不,,,会是这样的

with Paging(RowNo, ID, Name, Description, LengthSeconds, Rating, Url, ThumbnailFileName, AddedAt) AS
(
     select ... 

     WHERE @SortType is not null
     UNION ALL
     select ... 

     WHERE @SortType is null
)...
Run Code Online (Sandbox Code Playgroud)

如果查询很简单,那么您就不需要CTE:它不会添加任何可读性