在 T-SQL 中取消 table 中的日期值分组

Ungrouping dates values in a table in T-SQL

我有以下 table - tbl1:

      ClientID  DateIn      DateOut  
      2293      04/06/2018  04/10/2018
      2295      08/05/2019  08/07/2019

我需要以下结果

       ClientID  Date
       2293      04/06/2018
       2293      04/07/2018
       2293      04/08/2018
       2293      04/09/2018
       2293      04/10/2018

       2295      08/05/2019
       2295      08/06/2019
       2295      08/07/2019

所以,代替 DateIn - DateOut ,一个新的 [Date] 字段将上述日期“扩展”为与 ClientID.

关联的单个值

我对这里的方法有点困惑。请帮忙。

你可以尝试使用CTE递归

;WITH CTE AS (
    SELECT ClientID ,DateIn ,DateOut  
    FROM T 
    UNION ALL
    SELECT ClientID,
           DATEADD(DAY,1,DateIn),
           DateOut
    FROM CTE 
    WHERE DATEADD(DAY,1,DateIn) <= DateOut
)
SELECT ClientID,DateIn as 'Date'
FROM CTE 
ORDER BY ClientID,DateIn

dbfiddle