首先,对不起我的英语,我会尽力以最好的方式解释。
有没有办法按SQL Server 2008中的nvarchar
类型列进行分组?
我要更好地解释一下:(至少我试试)
如果我有这样的表:
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链接,是否可以通过查询来实现?
我不想使用存储过程。
答案 0 :(得分:2)
要获得随机链接,您可以使用以下内容:
SELECT TOP (1) WebSiteLink
FROM YourTable
ORDER BY NEWID();
如果您对随机img链接有更多特定需求,可以添加WHERE
子句。
答案 1 :(得分:1)
我需要获得一个随机的img链接:
例如,如果您需要每个代码的随机图像,例如GROUP BY code
,您可以使用此查询:
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
或窗口功能。这里是“group by”City,Code并显示一个随机的WebSiteLink
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;