有date1和date2,
要求date1為null值的排在前面,再將date2和當前時間比效,小時數大的排在前面,這是date1為null的排序, 然後再將剩下的date1不為null值的以desc排序。
1.
order by isnull(date1,'1900-01-01') asc,date1 desc,DateDiff('h', getdate(), date2) ASC2.
order by case when date1 is null then 0 else 1 end,date1 desc,DateDiff(hh, getdate(), date2)
--------------
以前在這裡問過,現在發現有點問題,上面兩條sql是以前回復的,第1條不能將date1不為null值的以desc排序,基本同等於order by date1 asc,DateDiff('h', getdate(), date2) ASC
第2條是正確的,可以實現,不過用起來後發現速度真的很慢,所以不想用第二條,想用第一條,怎麼修改?或者有沒有更好的?
要求date1為null值的排在前面,再將date2和當前時間比效,小時數大的排在前面,這是date1為null的排序, 然後再將剩下的date1不為null值的以desc排序。
1.
order by isnull(date1,'1900-01-01') asc,date1 desc,DateDiff('h', getdate(), date2) ASC2.
order by case when date1 is null then 0 else 1 end,date1 desc,DateDiff(hh, getdate(), date2)
--------------
以前在這裡問過,現在發現有點問題,上面兩條sql是以前回復的,第1條不能將date1不為null值的以desc排序,基本同等於order by date1 asc,DateDiff('h', getdate(), date2) ASC
第2條是正確的,可以實現,不過用起來後發現速度真的很慢,所以不想用第二條,想用第一條,怎麼修改?或者有沒有更好的?
解决方案 »
- WHERE t.position_id(+)=u.position_id 如何改成用sql server语法
- 2005的最后一天散分100,迎接2006的到来
- 数据转移过程中空间不够了
- 关于数据库速度的问题
- VS2005安装时同时选择安装了SQL Express版,请问Express版能用做服务器吗,开发版行不行呢?
- SQL分组查询问题
- 各位大狭,我们现在的项目有一个表,有36个字段,当这个表里放入10万条记录的时候,我们查询起来非常慢,不知道如何解决,请各位帮帮忙?
- 求一句SQL语句!
- 高难度:***删除有重复字段内容的记录***
- 我们的服务器是专业服务器,但是用起来就是很慢
- 请问大家是怎样根据查询分析器提供的出错信息去找出错误原因呀?
- 某一字段包含在字符串变量中的查询
order by isnull(date1,'9999-01-01') desc,DateDiff('h', getdate(), date2) ASC
union all
select * from (select top 100 percent * from tb where date1 is not null order by date1 desc)
Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
ODBC driver does not support the requested properties.
不過我的時間類型為smalldatetime,所以改為isnull(date1,'2079-06-06') desc 這樣就行了。謝謝