簡體   English   中英

查詢后如何查找行?

[英]How to find row after query?

我有一個查詢,我需要找到查詢返回答案的行號。 我沒有櫃台領域。 我該怎么做?

提前致謝。

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

如果您有主鍵,則可以在SQL Server 2005及更高版本上使用此方法:

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

如果沒有主鍵,則可能需要使用以下方法將表復制到內存表(或臨時表(如果非常大)中):

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

這樣做的好處是,如果源表沒有主鍵,您將能夠檢測到相同的行。

另外,在這一點上,我建議向您擁有的每個表添加一個主鍵(如果還沒有的話)。

創建表t1(N1 int,N2 int)

插入t1選擇200,300

插入t1選擇200,300

插入t1選擇300,400

插入t1中,選擇400,400 ..... ......

從(t1)開始選擇(按[N1]順序)行號*

我有一個查詢,我需要找到查詢返回答案的行號。 我沒有任何計數器字段。 我該怎么做?

如果我正確理解了您的問題,則您有某種查詢會返回一行或幾行(答案,答案),並且您希望將行號與“答案”相關聯

如您所說,您沒有任何計數器字段,因此需要執行以下操作:

  • 決定訂購標准
  • 添加計數器
  • 運行查詢

如果您為問題提供了更多詳細信息,那將真的有幫助。 如果您確認我正確理解了您的問題,我將添加一個代碼示例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM