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

Единична sql заявка, която може да обработва както нулев, така и стойностен диапазон от дати в sql сървъра

WITH    limits AS
        (
        SELECT  COALESCE(@startDate, MIN(mydate)) AS startDate, COALESCE(@endDate, MAX(mydate)) AS endDate
        FROM    mytable
        )
SELECT  m.*
FROM    limits
JOIN    mytable m
ON      mydate BETWEEN startDate AND endDate

Това ще бъде най-ефективно, ако има индекс на mydate , тъй като това условие може да се коригира и ще използва Index Seek .

Ако няма индекс, използвайте IFNULL конструкции, предложени от други.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Проверка на историята на плана за поддръжка на SQL Server за успех или неуспех

  2. mssql конвертира varchar в float

  3. Фатална грешка:Извикване на недефинирана функция sqlsrv_connect() в C:\xampp\htdocs

  4. Търсете име на колона във всички бази данни

  5. SSRS избира резултати въз основа на списък, разделен със запетая