Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara Memilih catatan yang tidak ada di Sql Server

Anda dapat melakukannya dengan CTE . Sesuatu seperti ini:

DECLARE @startDate datetime = '2/1/2014'
DECLARE @endDate datetime = '2/6/2014'

;WITH DateRange(RunningDate) AS
(
    SELECT @startDate AS RunningDate
    UNION ALL
    SELECT RunningDate + 1
    FROM DateRange
    WHERE RunningDate < @endDate
)

SELECT id, RunningDate date, value1, value2 
FROM DateRange LEFT JOIN myTable ON myTable.date = DateRange.RunningDate

Sunting... JIKA Anda menggunakan solusi ini (perhatikan komentar Aaron Bertrand di bawah jawaban saya), perhatikan bahwa Anda juga harus menentukan rekursi maksimum jika Anda berniat untuk berurusan dengan rentang yang lebih besar dari 3 bulan. Default diatur ke 100. Ini berarti bahwa, karena kueri saat ini ditulis, kueri hanya akan melakukan maksimum 101 tanggal (100 tingkat rekursi).

Anda juga dapat menentukan OPTION (MAXRECURSION 0) di akhir SELECT . terakhir untuk mengatasi ini. 0 berarti tingkat rekursi tak terbatas. Tapi sekali lagi, perhatikan postingan Aaron.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara mencari string di database SQL Server

  2. Demystifying CXPACKET dan CXCONSUMER menunggu jenis di SQL Server

  3. Bagaimana Saya Menyisipkan Byte[] Ke dalam Kolom VARBINARY SQL Server

  4. Dapatkan catatan 30 hari terakhir dari tanggal hari ini di SQL Server

  5. Aplikasi C# multi-threading dengan panggilan database SQL Server