2009-05-10 5 views
0

私はクエリを持っており、クエリがその答えを返す行番号を見つける必要があります。 私はカウンターフィールドを持っていません。どうすればいいのですか?クエリの後に行を見つける方法は?

ありがとうございます。

+1

これをご覧ください http://databases.aspfaq.com/database/how-do-i-return-row-numbers-with- my-query.html –

+1

実行しようとしているクエリの例を投稿できますか? – Jeremy

答えて

2
SELECT 
    ROW_NUMBER() OVER (<your_id_field_here> ORDER BY <field_here>) as RowNum, 
    <the_rest_of_your_fields_here> 
FROM 
    <my_table> 
0

あなたは主キーを持っている場合は、SQL Server 2005およびアップこの方法で使用することができます:

SELECT 
    ROW_NUMBER() OVER (ORDER BY PrimaryKeyField) as RowNumber, 
    Field1, 
    Field2 
FROM 
    YourSourceTable 

あなたは主キーを持っていない場合、何をしなければならないことがあるが(それは非常に大きい場合や、一時テーブル)のようにメソッドを使用してmermoryテーブルにテーブルを複製:

DECLARE @NewTable table (
    RowNumber BIGINT IDENTITY(1,1) PRIMARY KEY, 
    Field1 varchar(50), 
    Field2 varchar(50), 
) 

INSERT INTO @NewTable 
    (Field1, Field2) 
SELECT 
    Field1, 
    Field2 
FROM 
    YourSourceTable 

SELECT 
    RowNumber, 
    Field1, 
    Field2 
FROM 
    @NewTable 

この程度の素敵な部分は、あなたがあなたの元場合は、同一の行を検出することができますということですテーブルにはプライマリキーがありません。

また、この時点では、所有しているすべてのテーブルにプライマリキーを追加することをお勧めします。

0

T1 に挿入(N1のINT、N2のINT)

をテーブルT1を作成200,300

を選択 T1に挿入200,300

を選択し挿入300,400

を選択 T1に挿入t1 選択400,400 ..... ......

選択ROW_NUMBER()RowNumber関数([N1]による順)上で、* T1

0

から、私は、クエリを持っている、と私はクエリが 答えを返す 行番号を見つける必要があります。私はカウンターを持っていません フィールド。私はそれをどうやって?

私が正しくあなたの質問を理解していれば、あなたは行を返すクエリのいくつかの並べ替え、または少数の行(答え、答えを)持っていて、「答え」と行番号の仲間を持つようにしたい

あなたはあなたがフォローしているためにする必要がありますので、どのような任意のカウンタフィールドを持っていない言ったように:

  • が発注基準に決める
  • カウンタを追加
  • クエリを実行する

質問にさらに詳しい情報を提供していただければ、本当に役に立ちます。 質問を正しく理解していることを確認した場合は、コード例を追加します

関連する問題