How can I use if statement after a CTE (SQL Server 2005)

前端 未结 4 699
无人共我
无人共我 2020-12-29 04:12

Last night I was writing a simple T-SQL program something like this

DECLARE @ROLEID AS INT

SELECT @ROLEID = [ROLE ID] FROM TBLROLE

;WITH CTE
AS
( 
    SELE         


        
4条回答
  •  星月不相逢
    2020-12-29 04:17

    The closest you'll get is using a UNION ALL to do a crude switched select:

    DECLARE @ROLEID AS INT
    
    SELECT @ROLEID = [ROLE ID] FROM TBLROLE
    
    ;WITH CTE
    AS
    ( 
        SELECT * FROM SOMETABLE
    )
    SELECT
        --somecolumns
    FROM
        CTE
        --other stuff too
    WHERE
        @ROLEID = 1
    UNION ALL
    SELECT
        --somecolumns
    FROM
        CTE
        --other stuff too
    WHERE
        @ROLEID = 2
    UNION ALL
    SELECT
        --somecolumns
    FROM
        CTE
        --other stuff too
    WHERE
        @ROLEID = 3
    ...
    UNION ALL
    SELECT
        --somecolumns
    FROM
        CTE
        --other stuff too
    WHERE
        @ROLEID = n
    

提交回复
热议问题