Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL ИЗБОР НА РЕД

Това се прави лесно с row_number() функция прозорец:

<предварителен код>; с номерирано като ( изберете row_number() над (подреждане по [време]) rn, count(*) над() като cnt, * от Таблица1) изберете *от номерирано curleft join номерирано prevon cur.rn =prev.rn + 1left join номериран nexton cur.rn =next.rn - 1където cur.rn в (1, cur.cnt) -- първи или последен ред или (cur.id ='start' и prev.id ='stop') -- начало след stoporder от cur.rn

Пример на живо за SQL Fiddle.

Не че вашият примерен резултат не отговаря на вашите изисквания. Включва няколко реда, които не отговарят на нито един от трите критерия (първи ред, последен ред, начало след спиране.)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Активирайте 'xp_cmdshell' SQL Server

  2. Групирайте редове по условие

  3. Как да комбинирам данни от множество редове в един?

  4. Ефект на подсказката NOLOCK в операторите SELECT

  5. Entity Framework 4 Code First - Предотвратяване на изпускане/създаване на DB