存储过程这样写,一直出错
IF(@ID = '0000')
    select @countnum=count(*)from
     (SELECT RTRIM([PK_GroupID]) AS [UGPID], RTRIM([GroupName]) AS [UGPName] FROM [TB_UserGroup] WHERE [@ID] LIKE ''____'' AND [@ID] <> ''0000'')
       ELSE
        select @countnum=count(*)from
         (SELECT RTRIM([PK_GroupID]) AS [UGPID], RTRIM([GroupName]) AS [UGPName] FROM [TB_UserGroup] WHERE [@ID] LIKE ''' + @ID + '[0-9][0-9][0-9][0-9]'')

解决方案 »

  1.   

    IF(@ID = '0000')
    select @countnum=count(*)from
    (SELECT RTRIM([PK_GroupID]) AS [UGPID], RTRIM([GroupName]) AS [UGPName] FROM [TB_UserGroup] WHERE [@ID] LIKE ''____'' AND [@ID] <> ''0000'') M
    ELSE
    select @countnum=count(*)from
    (SELECT RTRIM([PK_GroupID]) AS [UGPID], RTRIM([GroupName]) AS [UGPName] FROM [TB_UserGroup] WHERE [@ID] LIKE ''' + @ID + '[0-9][0-9][0-9][0-9]'') M
      

  2.   

    IF(@ID = '0000')
    select @countnum=count(*) from
    (SELECT RTRIM([PK_GroupID]) AS [UGPID], RTRIM([GroupName]) AS [UGPName] FROM [TB_UserGroup] WHERE [@ID] LIKE ''____'' AND [@ID] <> ''0000'') t
    ELSE
    select @countnum=count(*) from
    (SELECT RTRIM([PK_GroupID]) AS [UGPID], RTRIM([GroupName]) AS [UGPName] FROM [TB_UserGroup] WHERE [@ID] LIKE ''' + @ID + '[0-9][0-9][0-9][0-9]'') t
      

  3.   

    要加表别名
    (SELECT RTRIM([PK_GroupID]) AS [UGPID], RTRIM([GroupName]) AS [UGPName] FROM [TB_UserGroup] WHERE [@ID] LIKE ''____'' AND [@ID] <> ''0000'') t
      

  4.   

    declare @ID varchar(10),@countnum int
    IF(@ID = '0000')
    begin
    select @countnum=count(*) from
    (SELECT RTRIM([PK_GroupID]) AS [UGPID], RTRIM([GroupName]) AS [UGPName] FROM [TB_UserGroup] WHERE [@ID] LIKE '%____%' AND [@ID] <> '0000') t
    end
    ELSE
    begin
    select @countnum=count(*) from
    (SELECT RTRIM([PK_GroupID]) AS [UGPID], RTRIM([GroupName]) AS [UGPName] FROM [TB_UserGroup] WHERE [@ID] LIKE '%'+ @ID + '[0-9][0-9][0-9][0-9]') t1
    end
      

  5.   

    declare @ID varchar(10),@countnum int
    IF(@ID = '0000')
    begin
    select @countnum=count(*) from
    (SELECT RTRIM([PK_GroupID]) AS [UGPID], RTRIM([GroupName]) AS [UGPName] FROM [TB_UserGroup] WHERE [@ID] LIKE '%____%' AND [@ID] <> '0000') t
    end
    ELSE
    begin
    select @countnum=count(*) from
    (SELECT RTRIM([PK_GroupID]) AS [UGPID], RTRIM([GroupName]) AS [UGPName] FROM [TB_UserGroup] WHERE [@ID] LIKE '%'+ @ID + '[0-9][0-9][0-9][0-9]') t1
    end
      

  6.   

    他字符串也有问题,咱俩没看到“WHERE [@ID] LIKE '%____%' AND [@ID] <> '0000'”