0
我有一個星期名兩列我的問題是如何讓這兩個星期名之間的所有工作日名稱瞭如何得到兩個星期名稱框間的工作日名稱在SQL Server
例:
WeekStartDate WeekEndDate
monday friday
我想造成這樣的
Monday, Tuesday, Wednesday, Thursday, Friday
請幫我
謝謝喲ü
我有一個星期名兩列我的問題是如何讓這兩個星期名之間的所有工作日名稱瞭如何得到兩個星期名稱框間的工作日名稱在SQL Server
例:
WeekStartDate WeekEndDate
monday friday
我想造成這樣的
Monday, Tuesday, Wednesday, Thursday, Friday
請幫我
謝謝喲ü
你可以在where子句中使用Between操作符,並且添加一個INT列作爲between將不會在我猜的nvarchar上工作。
Create table #temp(
data int,
dayN Nvarchar(100)
,dayc int
)
SELECT * FROM #TEMP
Insert into #temp values (10,'Monday',2)
Insert into #temp values (20,'tuesday',3)
Insert into #temp values (30,'wednesday',4)
Insert into #temp values (40,'thursday',5)
Insert into #temp values (50,'friday',6)
SELECT Data
FROM #TEMP
where dayN between 'Monday' and 'Wednesday'
--Above query gives wrong result
SELECT Data
FROM #TEMP
where dayC between 3 and 6
你可以做以下中:
declare @tbl table (WeekStartDate nvarchar(60),WeekEndDate nvarchar(60))
insert into @tbl values ('Monday', 'Friday')
declare @weeknums table (name nvarchar(60), num int)
insert into @weeknums values
('Monday' , 1),
('Tuesday' , 2),
('Wednesday' , 3),
('Thursday' , 4),
('Friday' , 5),
('Saturday' , 6),
('Sunday' , 7)
declare @min nvarchar(max) = (select min(num)
from @tbl t
join @weeknums w on t.WeekStartDate = w.name or t.WeekEndDate = w.name)
declare @max nvarchar(max) = (select max(num)
from @tbl t
join @weeknums w on t.WeekStartDate = w.name or t.WeekEndDate = w.name)
select w.*
from @weeknums w
where w.num between @min and @max