表如下:
sid szt stitle sdate
1 1 标题1 2010-01-27
2 0 标题2 2010-01-20
3 1 标题3 2010-01-13我想用一条SQL语语实现以下功能:
返回全部记录,且满足(离现在7天内且szt为1)的记录排序在前面。高手指教。
sid szt stitle sdate
1 1 标题1 2010-01-27
2 0 标题2 2010-01-20
3 1 标题3 2010-01-13我想用一条SQL语语实现以下功能:
返回全部记录,且满足(离现在7天内且szt为1)的记录排序在前面。高手指教。
CASE WHEN SDATE <=DATEADD(DD,-7,GETDATE()) AND SZT=1 THEN 0 ELSE 1 END
select * from tb
order by
case when sdate between dateadd(day,-7,convert(char(10),getdate(),120)) and convert(char(10),getdate(),120)
and szt=1 then 0 else 1 end
CASE WHEN SDATE >=DATEADD(DD,-7,GETDATE()) AND SZT=1 THEN 0 ELSE 1 END要修改一下>=
ORDER by szt + case when datediff(dd,getdate() ,sdate)>7 then 1 else 0 end
CASE WHEN 7 >= DATEDIFF(DD,SDATE,GETDATE()) AND SZT=1 THEN 0 ELSE 1 END
这样应该会好点
CASE WHEN 7 >= DATEDIFF(DD,SDATE,GETDATE()) THEN 0 ELSE 1 END,SZT DESC
SELECT * FROM TB ORDER BY
CASE WHEN SDATE >=DATEADD(DD,-7,GETDATE()) AND SZT=1 THEN 0 ELSE 1 END