복붙노트

[SQL] SQL 서버와 마지막 행을 읽는 방법

SQL

SQL 서버와 마지막 행을 읽는 방법

SQL 서버와 마지막 행을 읽을 수있는 가장 효율적인 방법은 무엇입니까?

테이블은 고유 키에 인덱싱 -은 "아래"키 값이 마지막 행을 나타냅니다.

해결법

  1. ==============================

    1.당신이 MS SQL을 사용하는 경우, 당신은 시도 할 수 있습니다 :

    당신이 MS SQL을 사용하는 경우, 당신은 시도 할 수 있습니다 :

    SELECT TOP 1 * FROM table_Name ORDER BY unique_column DESC 
    
  2. ==============================

    2.

    select whatever,columns,you,want from mytable
     where mykey=(select max(mykey) from mytable);
    
  3. ==============================

    3.당신은 자동 충전 기본 키 또는 날짜 열 (바람직 기본 키) 같은 테이블에 고유하게 식별 컬럼의 일종을해야합니다. 그럼 당신은이 작업을 수행 할 수 있습니다

    당신은 자동 충전 기본 키 또는 날짜 열 (바람직 기본 키) 같은 테이블에 고유하게 식별 컬럼의 일종을해야합니다. 그럼 당신은이 작업을 수행 할 수 있습니다

    SELECT * FROM table_name ORDER BY unique_column DESC LIMIT 1

    열을 기준으로 ORDER는 열의 데이터에 따라 결과를 rearange하도록 지시하고, DESC는 (따라서 먼저 마지막 퍼팅) 결과를 반대한다는 뜻입니다. 그 후, LIMIT 1은 하나 개의 행을 다시 전달한다는 뜻입니다.

  4. ==============================

    4.아이디 중 일부는 순서에 있다면, 난 당신의 DB에 어떤 위해가있을 것 같은데

    아이디 중 일부는 순서에 있다면, 난 당신의 DB에 어떤 위해가있을 것 같은데

    표 SELECT * FROM WHERE ID = (테이블에서 SELECT MAX (ID))

  5. ==============================

    5.나는 어떤 정렬 열없이 최대 성능으로 SQL Server에 대한 작동 쿼리 아래 생각

    나는 어떤 정렬 열없이 최대 성능으로 SQL Server에 대한 작동 쿼리 아래 생각

    SELECT * FROM table 
    WHERE ID not in (SELECT TOP (SELECT COUNT(1)-1 
                                 FROM table) 
                            ID 
                     FROM table)
    

    ... 당신이 그것을 이해 바랍니다 :)

  6. ==============================

    6.나는 SQL Server 2008의 SQL 쿼리에서 마지막으로 사용 시도했지만이 ERR을 제공합니다 : " '마지막'인식 할 수없는 내장 함수 이름."

    나는 SQL Server 2008의 SQL 쿼리에서 마지막으로 사용 시도했지만이 ERR을 제공합니다 : " '마지막'인식 할 수없는 내장 함수 이름."

    그래서 사용하여 결국 :

    select max(WorkflowStateStatusId) from WorkflowStateStatus 
    

    마지막 행의 ID를 얻을 수 있습니다. 하나는 사용할 수

    Declare @i int
    set @i=1
    select WorkflowStateStatusId from Workflow.WorkflowStateStatus
     where WorkflowStateStatusId not in (select top (
       (select count(*) from Workflow.WorkflowStateStatus) - @i ) WorkflowStateStatusId from .WorkflowStateStatus)
    
  7. ==============================

    7.이 시도

    이 시도

    SELECT id from comission_fees ORDER BY id DESC LIMIT 1
    
  8. ==============================

    8.당신은 LAST_VALUE 사용할 수 있습니다 : SELECT LAST_VALUE (열) OVER (열 BY 열 ORDER BY 파티션) ...

    당신은 LAST_VALUE 사용할 수 있습니다 : SELECT LAST_VALUE (열) OVER (열 BY 열 ORDER BY 파티션) ...

    내 데이터베이스 중 하나에 그것을 테스트하고이 같은 예상했다.

    당신은 여기 드 문서를 확인할 수 있습니다 https://msdn.microsoft.com/en-us/library/hh231517.aspx

  9. ==============================

    9.MS SQL 데이터베이스 2005 테이블의 마지막 행을 검색하기 위해, 다음과 같은 쿼리를 사용할 수 있습니다 :

    MS SQL 데이터베이스 2005 테이블의 마지막 행을 검색하기 위해, 다음과 같은 쿼리를 사용할 수 있습니다 :

    select top 1 column_name from table_name order by column_name desc; 
    

    참고 : MS SQL 데이터베이스 2005 테이블의 첫 번째 행을 얻으려면 다음과 같은 쿼리를 사용할 수 있습니다 :

    select top 1 column_name from table_name; 
    
  10. ==============================

    10.OFFSET하고 다음을 FETCH 결과를 표시하는 동안 SQL 페이징을 달성하기 위해 SQL 서버 2012의 기능입니다.

    OFFSET하고 다음을 FETCH 결과를 표시하는 동안 SQL 페이징을 달성하기 위해 SQL 서버 2012의 기능입니다.

    offset 인수는 행 수의 집합을 반환하는 데 사용되는 인수를 결과로 반환 행에 시작하는 행을 결정하고 가져 오는 데 사용됩니다.

    SELECT *
    FROM table_name
    ORDER BY unique_column desc
    OFFSET 0 Row
    FETCH NEXT 1 ROW ONLY
    
  11. ==============================

    11.

    SELECT * from Employees where [Employee ID] = ALL (SELECT MAX([Employee ID]) from Employees)
    
  12. ==============================

    12.이것은 당신이 마지막 레코드를 얻을 수 및 액세스 DB에 필드를 업데이트하는 방법입니다.

    이것은 당신이 마지막 레코드를 얻을 수 및 액세스 DB에 필드를 업데이트하는 방법입니다.

    업데이트 compalints 세트 TKT = addzone & '-'& customer_code & '-'및 SN 곳 SN에서 (최대 (SN을 선택) compalints에서)

  13. ==============================

    13.당신이 어떤 주문 열이없는 경우, 각 라인의 실제 ID를 사용할 수 있습니다 :

    당신이 어떤 주문 열이없는 경우, 각 라인의 실제 ID를 사용할 수 있습니다 :

    SELECT top 1 sys.fn_PhysLocFormatter(%%physloc%%) AS [File:Page:Slot], 
                  T.*
    FROM MyTable As T
    order by sys.fn_PhysLocFormatter(%%physloc%%) DESC
    
  14. ==============================

    14.당신이 복제 된 테이블이있는 경우, 당신은 당신이 항상 찾을 클라이언트, 현재 연결된 데이터베이스에서 마지막되지에서 마지막 수있는 마지막 ID를 잡을 그렇다면, clientDatabase의 localDatabase의 정체성 = 1000 아이덴티티 = 2000을 가질 수 있습니다. 마지막으로 연결된 데이터베이스를 반환하는 가장 좋은 방법입니다 그래서 :

    당신이 복제 된 테이블이있는 경우, 당신은 당신이 항상 찾을 클라이언트, 현재 연결된 데이터베이스에서 마지막되지에서 마지막 수있는 마지막 ID를 잡을 그렇다면, clientDatabase의 localDatabase의 정체성 = 1000 아이덴티티 = 2000을 가질 수 있습니다. 마지막으로 연결된 데이터베이스를 반환하는 가장 좋은 방법입니다 그래서 :

    SELECT IDENT_CURRENT('tablename')
    
  15. ==============================

    15.나는 테이블에서 "마지막 값"을받지 못했습니다 글쎄, 난 금융 상품 당 마지막 값을 얻고있다. 이 같은 아니지만 나는 "지금 수행하는 방법"을 찾기 위해 찾고있는 그 어떤 관련이 같아요. 또한 ROWNUMBER ()와 CTE의 사용과 그 전에 단순히 [칼럼] 내림차순으로 한 순서를 취할. 에 그러나 우리 nolonger 필요 ...

    나는 테이블에서 "마지막 값"을받지 못했습니다 글쎄, 난 금융 상품 당 마지막 값을 얻고있다. 이 같은 아니지만 나는 "지금 수행하는 방법"을 찾기 위해 찾고있는 그 어떤 관련이 같아요. 또한 ROWNUMBER ()와 CTE의 사용과 그 전에 단순히 [칼럼] 내림차순으로 한 순서를 취할. 에 그러나 우리 nolonger 필요 ...

    무역을 내가 SQL 서버 2017을 사용하고, 우리는 세계 모든 거래소의 모든 틱을 기록, 우리는 우리가 각 입찰 물어 저장 ~ 120 억은 하루에 틱이 있고, 볼륨 및 진드기의 속성을 포함한 무역 (입찰 물어 ) 지정된 교류 어느.

    우리는 우리가 사용하는 가격의 "마지막"을 얻을 필요가있을 때, 마지막 거래 가격은 틱 유형 = 4, 그래서 우리는 그 테이블에 주어진 계약 (주로 통계)에 대한 틱 데이터 (253 개) 유형이 있습니다 :

    select distinct T.contractId,
    LAST_VALUE(t.Price)over(partition by t.ContractId order by created ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING)
    from [dbo].[Tick] as T
    where T.TickType=4
    

    교환 가져 오기 ETL 테이블에 데이터를 펌핑하는 동안 4 초에 실행이 매우 효율적으로 실행 내 dev에 시스템에 대한 계획이 실행을 볼 수있을 것입니다 일부 얼마나 라이브 시스템 작업의 그 ... 저를 늦추고 잠금.

  16. ==============================

    16.

    SELECT * FROM TABLE WHERE ID = (SELECT MAX(ID) FROM TABLE)
    
  17. ==============================

    17.나는 확신이라고 생각합니다 :

    나는 확신이라고 생각합니다 :

    SELECT last(column_name) FROM table
    

    나는 비슷한을 사용하기 때문에 :

    SELECT last(id) FROM Status
    
  18. from https://stackoverflow.com/questions/177323/how-to-read-the-last-row-with-sql-server by cc-by-sa and MIT license