-1

目的:
注文を正しい順序で取得すること。

Requested result in the table

a = nvarchar
n = int
text = nvarchar


a  n  text
----------
a  3  sd  
a  2  df
a  1  cv
c  2  we
c  1  qw
b  5  zx
b  4  hj
b  3  cv
b  2  fv
b  1  av
...
...
...
...
...
...
more rows to go

問題:
列 'n' を正しい順序で取得するために SQL コードを使用する方法がわかりません。ゴール部分に正しい順番が表示されます。

a = nvarchar
n = int
text = nvarchar


a  n  text
----------
a  1  sd  
a  2  df
a  3  cv
c  1  we
c  2  qw
b  1  zx
b  2  hj
b  3  cv
b  4  fv
b  5  av
...
...
...
...
...
...
more rows to go
4

3 に答える 3

1

I: 新しい n 列の順序を考慮してテーブルを更新する方法を知りたいですか?

あなた:はい、そうです。データの列n とその時系列のみを変更します。目的の値は、最高値から始まり、値「1」まで下がります。変更することも、新しい列を追加することもできます。

n-column を次ROW_NUMBERのように更新できますCTE

WITH cte AS 
(
    SELECT a, n, text, 
           rn = Row_number() 
                 OVER( 
                   partition BY a 
                   ORDER BY n DESC) 
    FROM   dbo.Table1) 
UPDATE cte 
SET    n = rn; 

デモ

于 2013-04-13T13:14:46.670 に答える
0

次のように順序を指定できます。

SELECT
    a, n, txt
FROM
    TableName
ORDER BY
    a,
    n DESC

aただし、最初に値に従ってもソートされます。

于 2013-04-13T12:58:39.387 に答える
0
Select * from table order by a, n
于 2013-04-13T12:59:12.813 に答える