SQL2012的一些新函式

2021-06-15 05:46:23 字數 3376 閱讀 8866

--新分頁方法(效率較高)

select*fromsys.columnsorderbyobject_id offset 5rowsfetchnext3rowsonly

--可建立類似oracle 的sequence 序列便於多表共用乙個序列

createsequencesidasintstartwith1 incrementby1  maxvalue  10 /*序列最大值*/ minvalue  -2 /*序列最小值*/ cycle /*可迴圈*/

--序列修改(步長居然可以為負數)

altersequencesid restartwith3 incrementby-1

--獲取序列值 如何獲取當前值??

declare@iint

select@i =nextvalueforsid

print @i

--字串連線函式測試(任意長度,任意型別)

selectconcat('sqlserver',2012,null,'enterprise',getdate())

--新增選擇函式第乙個引數從開始

selectchoose(0,'1','2','3','4')

selectchoose(3,'1','2','3','4')

--新增判斷函式

selectiif(1>2 ,'1',getdate())

--新增月計算函式

selecteomonth(getdate())as'本月最後一天'

selecteomonth(getdate(),1)as'下月最後一天'

selecteomonth(getdate(),-1)as'上月最後一天'

--新增型別轉換函式parse  try_convert try_parse

selecttry_convert(float,'test')-- 轉換不出,返回null

selecttry_convert(float,'1')

selecttry_parse('test'asdatetime)

selecttry_parse('2012-04-01'asdatetime)

--比較有用的分析函式lag(錯位比較) 同時可進行分割槽錯位比較

--下例數介紹如何時候column_id 前後兩行資料相減,取代錯位連線的麻煩

selectlag(column_id,1,0) over (partitionbyobject_idorderbyobject_id,column_id)

fromsys.columns

--錯位連線(取代rownumber 函式錯位連線)

selectobject_id,column_id,lead(column_id,1,0)  over (partitionbyobject_idorderbyobject_id,column_id)asnextcolums

fromsys.columns

SQL2012匯出的指令碼沒有if exists判斷

sql2012匯出的指令碼沒有if exists判斷 以前用sql2000的時候,匯出儲存過程,表各種object的時候,前面會自動加if exists的一段指令碼,這樣的指令碼很方便的可以重複執行.現在使用sql2012的時候,居然沒有了.難道是退化了,我鬱悶了好一陣子.後來,發現,並沒有的.你需...

一些常用的sql函式

select abs 5 from dual select sqrt 2 from dual select power 2,3 from dual select cos 3.14159 from dual select mod 1600 300 from dual select ceil 2.35 ...

一些SQL高階函式

posted on 2010 08 08 21 34 收藏長度與分析用 datalength char expr 返回字串包含字元數,但不包含後面的空格 substring expression,start,length 不多說了,取子串 right char expr,int expr 返回字串右...