--新分頁方法(效率較高)
select
*
from
sys.columns
order
by
object_id offset 5
rows
fetch
next
3
rows
only
--可建立類似oracle 的sequence 序列便於多表共用乙個序列
create
sequence
sid
as
int
start
with
1 increment
by
1 maxvalue 10 /*序列最大值*/ minvalue -2 /*序列最小值*/ cycle /*可迴圈*/
--序列修改(步長居然可以為負數)
alter
sequence
sid restart
with
3 increment
by
-1
--獲取序列值 如何獲取當前值??
declare
@i
int
select
@i =
next
value
for
sid
print @i
--字串連線函式測試(任意長度,任意型別)
select
concat(
'sqlserver'
,2012,
null
,
'enterprise'
,getdate())
--新增選擇函式第乙個引數從開始
select
choose(0,
'1'
,
'2'
,
'3'
,
'4'
)
select
choose(3,
'1'
,
'2'
,
'3'
,
'4'
)
--新增判斷函式
select
iif(1>2 ,
'1'
,getdate())
--新增月計算函式
select
eomonth(getdate())
as
'本月最後一天'
select
eomonth(getdate(),1)
as
'下月最後一天'
select
eomonth(getdate(),-1)
as
'上月最後一天'
--新增型別轉換函式parse try_convert try_parse
select
try_convert(
float
,
'test'
)
-- 轉換不出,返回null
select
try_convert(
float
,
'1'
)
select
try_parse(
'test'
as
datetime)
select
try_parse(
'2012-04-01'
as
datetime)
--比較有用的分析函式lag(錯位比較) 同時可進行分割槽錯位比較
--下例數介紹如何時候column_id 前後兩行資料相減,取代錯位連線的麻煩
select
lag(column_id,1,0) over (partition
by
object_id
order
by
object_id,column_id)
from
sys.columns
--錯位連線(取代rownumber 函式錯位連線)
select
object_id,column_id,lead(column_id,1,0) over (partition
by
object_id
order
by
object_id,column_id)
as
nextcolums
from
sys.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 返回字串右...