首頁 > 資料庫 > mysql教程 > SQL如何有效率地辨識兩個表之間重疊的時間間隔?

SQL如何有效率地辨識兩個表之間重疊的時間間隔?

Mary-Kate Olsen
發布: 2024-12-31 04:20:09
原創
258 人瀏覽過

How Can SQL Efficiently Identify Overlapping Time Intervals Between Two Tables?

在SQL 中有效辨識時間間隔重疊

問題:

給定兩個帶有開始和結束時間列的表,任務是識別第二個表中與第一個表中的每一行在時間間隔上重疊的行。此條件也考慮第二個表中具有空結束時間的行。

解決方案:

使用SQL Server 2005 語法,以下WHERE 子句可以有效解決此問題問題:

SELECT * 
FROM table1,table2 
WHERE table2.start <= table1.end 
AND (table2.end IS NULL OR table2.end >= table1.start)
登入後複製

解釋:

  • 子句table2.start 第二個條件,table2.end IS NULL OR table2.end >= table1.start,處理 table2 中的空結束時間。如果結束時間為空,則認為無限期延長間隔,可能與表 1 中的任何後續間隔重疊。或者,如果結束時間是有效值且大於或等於 table1 中當前間隔的開始時間,則會偵測到重疊。

以上是SQL如何有效率地辨識兩個表之間重疊的時間間隔?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板