首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL查询为每个页面选择边框

SQL查询为每个页面选择边框
EN

Stack Overflow用户
提问于 2018-02-15 08:51:18
回答 1查看 579关注 0票数 0

我有一个要求得到以下的东西。

有分配给类别的横幅。每个类别的横幅都是动态的。

假设我在一个类别中有100个产品,在那个类别中有3个横幅。然后将如下所示。

第1页: 1-10产品和Banner1

第2页: 11-20产品和Banner2

第3页: 21-30产品及Banner3

第4页: 31-40产品和Banner1

第5页: 31-40产品和Banner2

第6页: 41-50产品和Banner3

。。

我需要一个查询来选择每个页面中的一个横幅。

有人能帮我做到这一点吗?

用于参考数据库方案

dbo.Category (Id int,CategoryName Varchar(100))

dbo.Product (Id int,ProductName varchar(100),Description varhcar(max),ImageLink varchar(100))

dbo.Category_Product_Mapping (CategoryId int,ProdcutId int)

dbo.Banner(Id int,ImageLink varchar(100),DisplayOrder int,CategoryId int)

EN

回答 1

Stack Overflow用户

发布于 2018-02-15 10:23:03

尝尝这个,

代码语言:javascript
运行
复制
create table #product (productid int)
    insert into #product values (9),(19),(29)
    ,(39),(49),(59),(69),(79),(89),(99),(100),(111)
    ,(121)

DECLARE @rangesize INT = 10
DECLARE @numberofBanner INT = 3
DECLARE @Margin INT = @rangesize * @numberofBanner

SELECT productid
    ,CASE 
        WHEN productid < @Margin
            THEN (productid / @rangesize) + 1
        ELSE (productid / @rangesize) % @numberofBanner + 1
        END bannerid
FROM #product

DROP TABLE #product

或者,您可以创建一个临时表,如下所示

代码语言:javascript
运行
复制
    create table #bannerrange (FromID int,ToID int,Bannerid int)
    --then join with product table

    drop table #product
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48803181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档