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

Как да намерите N последователни записа в таблица с помощта на SQL

Трябва да съпоставите масата си със самата нея, сякаш има 2 маси. Така че използвате два псевдонима, o1 и o2, за да препратите към вашата таблица:

SELECT DISTINCT o1.customer, o1.product, o1.datum, o1.sale
  FROM one o1, one o2
  WHERE (o1.datum = o2.datum-1 OR o1.datum = o2.datum +1)
  AND o1.sale = 'NO' 
  AND o2.sale = 'NO'; 
 customer | product |   datum    | sale 
----------+---------+------------+------
 X        | A       | 2010-01-03 | NO
 X        | A       | 2010-01-04 | NO
 X        | A       | 2010-01-06 | NO
 X        | A       | 2010-01-07 | NO
 X        | A       | 2010-01-08 | NO

Обърнете внимание, че изпълних заявката в база данни postgresql - може би синтаксисът се различава на ms-sql-сървър, може би при псевдонима „FROM one AS o1“ може би и може би не можете да добавяте/изваждате по този начин.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 8078 байта в страница с данни 8060 B (SQL Server)?

  2. Производителност на SQL Server 2008 на nullable географска колона с пространствен индекс

  3. Уникално ограничение на TSQL Multi Column, което също позволява множество нулеви стойности

  4. Как да създадете съхранена процедура в SQL Server

  5. SQL Как да разделите една колона на множество променливи колони