0

まず、英語で申し訳ありませんが、最善の方法で説明しようと思います。

nvarcharSQL Server 2008でタイプの列でグループ化する方法はありますか?

私はそれをよりよく説明するつもりです:(少なくとも私は試します)

私がこのようなテーブルを持っている場合:

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リンクを取得することです、それはクエリでそれを行うことは可能ですか?

ストアドプロシージャを使用したくありません。

4

2 に答える 2

2

ランダムリンクを取得するには、次を使用できます。

SELECT TOP (1) WebSiteLink
FROM YourTable
ORDER BY NEWID();

WHEREランダムなimgリンクについてより具体的なニーズがある場合は、句を追加できます。

于 2012-11-02T20:41:07.840 に答える
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

またはウィンドウ関数。これが都市、コードによる「グループ化」であり、1つのランダムな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;
于 2012-11-02T20:43:10.200 に答える