首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按nvarchar分组

按nvarchar分组
EN

Stack Overflow用户
提问于 2012-11-03 04:36:00
回答 2查看 2.4K关注 0票数 0

首先,我为我的英语道歉,我会试着用最好的方式来解释。

在SQL Server2008中,有没有办法按nvarchar类型的列进行分组?

我将更好地解释它:(至少我尝试了)

如果我有一个这样的表:

代码语言:javascript
复制
ID  Quantity   City   Code   WebSiteLink
__  ________   ____   ____   __________
1      10      Milan   R2    home/images/1.jpg
2      20      Milan   R2    home/images/2.jpg
3      30      Rome    R2    home/images/3.jpg
4      55      Rome    R2    home/images/4.jpg
5      4       Naple   R2    home/images/5.jpg
6      1       London  R2    home/images/6.jpg
7      30      London  R2    home/images/7.jpg
8      40      London  R2    home/images/8.jpg

我能够对除WebSitelink之外的所有列进行分组,因为它是一种nvarchar类型。

我的需求是获得一个随机的img链接,这可以通过查询来实现吗?

我不想使用存储过程。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-03 04:43:10

我需要的是获得一个随机的img链接:

例如,如果您需要每个代码的随机图像,例如GROUP BY code,您可以使用以下查询:

代码语言:javascript
复制
  SELECT Code, (SELECT TOP(1) A.WebSiteLink
                  FROM tbl A
                 WHERE A.Code = B.Code
              ORDER BY NEWID()) RandomWebSiteLink
    FROM tbl B
GROUP BY Code

或者窗口函数。这是"groups by“城市,代码和显示一个随机的WebSiteLink

代码语言:javascript
复制
  SELECT City, Code, WebSiteLink
    FROM
       (
  SELECT City, Code, WebSiteLink,
         Row_Number() OVER (Partition by City, Code
                            Order by NewID()) RowNum
    FROM tbl
       ) X
   WHERE RowNum = 1;
票数 1
EN

Stack Overflow用户

发布于 2012-11-03 04:41:08

要获得随机链接,您可以使用以下命令:

代码语言:javascript
复制
SELECT TOP (1) WebSiteLink
FROM YourTable
ORDER BY NEWID();

如果你对你的随机img链接有更具体的需求,你可以添加一个WHERE子句。

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

https://stackoverflow.com/questions/13202691

复制
相关文章

相似问题

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