------------------------------------------------------------------------------------
除法運算
select 500 / (501) *100
結果為0,由于數值是INT類型,怎么才能得到小數點呢?
select 500 / (501 + 0.0) *100
99.800300這樣就有小數點了。。。天那。。SQL真是有點笨。
------------------------------------------------------------------------------------
獲取當前日期 昨天日期
select getdate()-1 --2015-06-03 13:33:14.957select DATEADD(DAY, -1, GETDATE()) --2015-06-03 13:33:14.957select convert(varchar(10),getdate()-1,120) --2015-06-03
Year(getdate()) --當前年Month(getdate()) --當前月Day(getdate()) --當前日Datediff(d,時間字段,getdate()) --得到離過生日還剩的天數其它格式轉換的范例如下:--YYYY/MM/DDSelect Convert(varchar(10),Getdate(),111)--YYYYMMDDSelect Convert(varchar(10),Getdate(),112)--HH:MM:SSSelect Convert(varchar(8),Getdate(),108)--HH:MM:SS:mmmSelect Convert(varchar(12),Getdate(),114)
------------------------------------------------------------------------------------
數據表中比如有20條數據讀取前5條數據select top 5 * from 表 order by id desc讀取前5條數據后的5條數據(就是查詢前10條記錄,取后面5個)select top 5 * from 表 whereid not in (select top 5 id from 表)
===================================================================================SELECT TOP 11 * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY StuID) AS RowNumber, * FROM StuInfo) tWHERE RowNumber >= 10 假設StuID是StuInfo表的主鍵“學號”。先按學號排序,生成行號,再返回行號>=10時的前11條記錄,即行號為10~20的11條記錄。=======================================================================select top 10 * from [table_name] where id in (select top 20 id from [table_name] order by id desc) order by id asc這樣顯示出來的就是:從11到20條數據
新聞熱點
疑難解答