代码之家  ›  专栏  ›  技术社区  ›  cnd

内箱至主箱,选择:-/

sql
  •  2
  • cnd  · 技术社区  · 15 年前

      ALTER PROCEDURE [dbo].[HardQ3] 
        (@ID_User nvarchar(15), @ID_ListGroupParIzm Integer,@CIzmer Integer, @CPoint Integer, @UserExt bit) 
         AS   
    
    SELECT * FROM
    (
        SELECT  
             C.ID_ListParIzm, 
             C.Hint, 
             CAST(CASE WHEN T2.ID_Param IS NULL AND T2.UserExt=@UserExt THEN 1 ELSE 0 END as bit) AS Visi ,
             T2.UserExt AS UserExt
        FROM 
             CfgListParIzm C  
             LEFT JOIN 
             (   SELECT 
                 T.ID_Param,
                 T.UserExt as UserExt 
              FROM
                 TbUserParam T
              WHERE
                 T.ID_User = @ID_User 
                 AND T.ID_Izmerit = @CIzmer
                 AND T.ID_Point = @CPoint 
             ) T2 On T2.ID_Param = C.ID_ListParIzm 
         WHERE 
            C.ID_ListGroupParIzm = @ID_ListGroupParIzm AND 
            C.VisibleOnTab=1
            --ORDER BY Num
    ) d
    WHERE (UserExt IS NOT NULL)
    

    T2.UserExt不为NULL不会工作,因为Where只在select之后工作,所以我需要在为T2选择时实时使用它。

    如何为main select中的每个节点使用(T2.UserExt(带有内部大小写))的大小写

    我真的希望这个问题可以理解:)

    1 回复  |  直到 15 年前
        1
  •  1
  •   Pranay Rana    15 年前
        PROCEDURE [dbo].[HardQ3] 
        (@ID_User nvarchar(15), @ID_ListGroupParIzm Integer,@CIzmer Integer, @CPoint Integer, @UserExt bit) 
         AS   
    
    Select * from (
    
        SELECT  
             C.ID_ListParIzm, 
             C.Hint, 
             CAST(CASE WHEN T2.ID_Param IS NULL AND T2.UserExt=@UserExt THEN 1 ELSE 0 END as bit) AS Visi 
        FROM 
             CfgListParIzm C  
             LEFT JOIN 
             (   SELECT 
                 T.ID_Param,
                 T.UserExt as UserExt 
              FROM
                 TbUserParam T
              WHERE
                 T.ID_User = @ID_User 
                 AND T.ID_Izmerit = @CIzmer
                 AND T.ID_Point = @CPoint 
             ) T2 On T2.ID_Param = C.ID_ListParIzm 
         WHERE 
            C.ID_ListGroupParIzm = @ID_ListGroupParIzm AND 
            C.VisibleOnTab=1
            ORDER BY Num
    
    
    )d where  UserExt IS NOT NULL