Sql server 在T-SQL中解组表中的日期值
我有下表-tbl1:Sql server 在T-SQL中解组表中的日期值,sql-server,tsql,common-table-expression,Sql Server,Tsql,Common Table Expression,我有下表-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 2
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
因此,新的[Date]字段将取代DateIn-DateOut,将上述日期扩展为与ClientID关联的单个值
我对这里的方法有点困惑。请帮助。您可以尝试使用CTE Recurcine
;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
工作得很好!我以前常问这样的问题,但要复杂得多。以后我会尽量记住这一点