Diviser 2 dates en 2 lignes isq

Je veux split les vacances entre 2 mois en 2 lignes en sql par exemple:

EmpId StartDate EndDate TotalDays 1 2017/5/25 2017/6/10 16 

J'ai besoin de le split en 2 rangs comme suit:

 EmpId StartDate EndDate TotalDays 1 2017/5/25 2017/5/31 6 1 2017/6/1 2017/6/10 10 

Merci

En supposant que les vacances ont seulement un mois de partage (comme dans votre exemple):

 select empid, startdate, (case when eomonth(startdate) < enddate then eomonth(startdate) else enddate end) as enddate from t union all select empid, dateadd(day, 1, eomonth(startdate)), enddate from t where eomonth(startdate) < enddate; 

Eh bien, cela ne donne pas TotalDays , mais vous pouvez le faire en utilisant une sous-requête et datediff() .