现想创建一个视图,20点之前和之后显示的数据是不一样的,也就是查询条件不一样,可不可以放到一个视图里,怎么放?我有一段查询语句运行是正常的,但不知道怎么放到创建视图的语句中,请高人指点if DATEPART(HOUR,GETDATE())<=20
begin
SELECT * FROM aws.dbo.tabHourData
where
(
(DATEDIFF(DAY,ObservTime,GETDATE())=1 and DATEPART(HOUR,ObservTime)<=20)
or
(DATEDIFF(DAY,ObservTime,GETDATE())=2 and DATEPART(HOUR,ObservTime)>20)
)
and ( StationID='K2299' or StationID like 'K23%')
order by ObservTime desc
end
else
begin
select * from aws.dbo.tabHourData
where
(
(DATEDIFF(DAY,ObservTime,GETDATE())=0 and DATEPART(HOUR,ObservTime)<=20)
or
((DATEDIFF(DAY,ObservTime,GETDATE())=1 and DATEPART(HOUR,ObservTime)>20))
)
and ( StationID='K2299' or StationID like 'K23%')
order by ObservTime desc
end
begin
SELECT * FROM aws.dbo.tabHourData
where
(
(DATEDIFF(DAY,ObservTime,GETDATE())=1 and DATEPART(HOUR,ObservTime)<=20)
or
(DATEDIFF(DAY,ObservTime,GETDATE())=2 and DATEPART(HOUR,ObservTime)>20)
)
and ( StationID='K2299' or StationID like 'K23%')
order by ObservTime desc
end
else
begin
select * from aws.dbo.tabHourData
where
(
(DATEDIFF(DAY,ObservTime,GETDATE())=0 and DATEPART(HOUR,ObservTime)<=20)
or
((DATEDIFF(DAY,ObservTime,GETDATE())=1 and DATEPART(HOUR,ObservTime)>20))
)
and ( StationID='K2299' or StationID like 'K23%')
order by ObservTime desc
end
(DATEDIFF(DAY,ObservTime,GETDATE())=(case when DATEPART(HOUR,GETDATE())<=20 then 1 else 0 end) and DATEPART(HOUR,ObservTime)<=20)
or
((DATEDIFF(DAY,ObservTime,GETDATE())=(case when DATEPART(HOUR,GETDATE())<=20 then 2 else 1 end) and DATEPART(HOUR,ObservTime)>20))
)
create view viewname
as
select * from aws.dbo.tabHourData
where
(
(DATEDIFF(DAY,ObservTime,GETDATE())=(case when DATEPART(HOUR,GETDATE())<=20 then 1 else 0 end) and DATEPART(HOUR,ObservTime)<=20)
or
((DATEDIFF(DAY,ObservTime,GETDATE())=(case when DATEPART(HOUR,GETDATE())<=20 then 2 else 1 end) and DATEPART(HOUR,ObservTime)>20))
)
and ( StationID='K2299' or StationID like 'K23%')
order by ObservTime desc