SQL中声明表变量示例

USE [ShanghaiWeibo]
GO
/****** Object:  StoredProcedure [dbo].[PROC_GetMyRealAttentionByParams]    Script Date: 08/09/2012 10:30:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
 
 
-- =============================================
-- Author:        zhaowei
-- Create date: 20120312
-- Description:    检索我的互相关注
-- =============================================
--exec PROC_GetMyRealAttentionByParams 66,0,0,100,'',0
 
ALTER PROCEDURE [dbo].[PROC_GetMyRealAttentionByParams]
(
    @memberId int,
    @memberType int,
    @pageIndex int,
    @pageSize int,
    @keyword nvarchar(50),
    @groupId int
)
AS
BEGIN
    SET NOCOUNT ON;
    DECLARE @startRowIndex INT
    DECLARE @EndRows INT
    SET @startRowIndex=@PageIndex*@pageSize+1
    SET @EndRows=@startRowIndex+@pageSize
    --    DECLARE @SQL NVARCHAR(1000)   
 
    DECLARE @TABLE_MEMBER TABLE (toMemberid INT,toMemberType INT)
 
    INSERT INTO @TABLE_MEMBER
    SELECT    
        AB.toMemberid,
        AB.toMemberType
    FROM AttentionBusiness AB
    INNER JOIN (SELECT id,fromMemberId,fromMemberType,toMemberid FROM AttentionBusiness WHERE toMemberid   = @memberId and toMemberType=@memberType) CD
    ON AB.toMemberid = CD.fromMemberId AND AB.toMemberType = CD.fromMemberType
    WHERE
        AB.fromMemberId = @memberId and AB.fromMemberType=@memberType
    ORDER BY AB.toMemberid
     
    DECLARE @T_TABLE TABLE
    (
        ID INT,
        fromMemberId INT,
        fromMemberType INT,
        toMemberid INT,
        toMemberType INT,
        addDatetime datetime,
        fromGroupId INT,
        toMemberFirstChar VARCHAR(100),
        toMemberName NVARCHAR(100)
    )
    INSERT INTO @T_TABLE
    SELECT
    AB.*
        FROM
    AttentionBusiness  AB
    INNER JOIN
    ( SELECT ID,CompanyPetName FROM    Member_Info
      WHERE  ID IN (SELECT toMemberid FROM @TABLE_MEMBER WHERE toMemberType =1) AND CompanyPetName LIKE '%'+@keyword+'%' 
    ) MI ON MI.ID = AB.toMemberid
    WHERE
        AB.fromMemberId = @memberId and AB.fromMemberType=@memberType
    AND
        toMemberid IN (SELECT toMemberid FROM @TABLE_MEMBER WHERE toMemberType =1)
    AND
        toMemberType = 1
 
    UNION
 
    SELECT
    AB.*
        FROM
    AttentionBusiness  AB
    INNER JOIN
    ( SELECT ID,MemberPetName FROM    MemberBizcenter_Info
      WHERE  ID IN (SELECT toMemberid FROM @TABLE_MEMBER WHERE toMemberType =0) AND MemberPetName LIKE '%'+@keyword+'%' 
    ) MI ON MI.ID = AB.toMemberid
    WHERE
        AB.fromMemberId = @memberId AND AB.fromMemberType=@memberType
    AND
        toMemberid IN (SELECT toMemberid FROM @TABLE_MEMBER WHERE toMemberType =0)
    AND
        toMemberType = 0
 
    SELECT TA.*
    FROM
    (
    SELECT
    ROW_NUMBER() OVER (ORDER BY T.ID) AS SNO,
    T.*
    FROM @T_TABLE AS T
    ) AS TA
    WHERE TA.SNO>=@startRowIndex AND TA.SNO<@EndRows
 
    SELECT COUNT(T.ID) AS RecordCount
    FROM @T_TABLE AS T
END
-------------------------------------------------------------------------------------------------
 
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:        zw
-- Create date: 20120809
-- Description:    检索人气排名
-- =============================================
--exec PROC_FansCountTop 10
CREATE PROCEDURE PROC_FansCountTop
    (
        @top int
    )
AS
BEGIN
    SET NOCOUNT ON;
 
 
    declare @t table
    (
        ID int,
        MemberName nvarchar(100),
        MemberType varchar(10),
        TrueName nvarchar(100),
        fansCount int
    )
 
    insert into @t
 
    select ID,MemberName,MemberType,TrueName,
    (BeAttentionedCount0+BeAttentionedCount1) as fansCount
     from MemberBizcenter_Info
 
 
    union
 
    select ID,MemberName,'1' as MemberType,TrueName,
    (BeAttentionedCount0+BeAttentionedCount1) as fansCount
     from Member_Info
 
 
     select top(@top) * from @t order by fansCount desc
 
END
GO

 

posted @   skybirdzw  阅读(1618)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示