在sql2005中,怎麼獲取漢字拼音的首字母?例如,中國人民 ,其拼音首字母組合該為zgrm。我們可以在在sql2005中定義乙個函式fun_getpy,sql語法如下:
/****** 物件: userdefinedfunction [dbo].[fun_getpy] 指令碼日期: 12/28/2011 10:48:52 *****
*/if
exists (select
*from sys.objects where
object_id
=object_id(n'
[dbo].[fun_getpy]
') and type in (n'
fn', n'
if', n'
tf', n'
fs', n'
ft'))
drop
function
[dbo
].[fun_getpy]/*
***** 物件: userdefinedfunction [dbo].[fun_getpy] 指令碼日期: 12/28/2011 10:49:00 *****
*/set ansi_nulls on
goset quoted_identifier on
gocreate
function
[dbo
].[fun_getpy
](@str
nvarchar(4000))
returns
nvarchar(4000)
asbegin
declare
@word
nchar(1),@py
nvarchar(4000)
set@py=''
while
len(@str)>
0begin
set@word
=left(@str,1)
--如果非漢字字元,返回原字元
set@py
=@py
+(case
when
unicode(@word) between
19968
and19968
+20901
then (select
top1 py from (
select'a
'as py,n'驁'
as word
union
allselect'b
',n'簿'
union
allselect'c
',n'錯'
union
allselect'd
',n'鵽'
union
allselect'e
',n'樲'
union
allselect'f
',n'鰒'
union
allselect'g
',n'腂'
union
allselect'h
',n'夻'
union
allselect'j
',n'攈'
union
allselect'k
',n'穒'
union
allselect'l
',n'鱳'
union
allselect'm
',n'旀'
union
allselect'n
',n'桛'
union
allselect'o
',n'漚'
union
allselect'p
',n'曝'
union
allselect'q
',n'囕'
union
allselect'r
',n'鶸'
union
allselect's
',n'蜶'
union
allselect't
',n'籜'
union
allselect'w
',n'鶩'
union
allselect'x
',n'鑂'
union
allselect'y
',n'韻'
union
allselect'z
',n'咗'
) t
where word>=
@word collate chinese_prc_cs_as_ks_ws
order
by py asc) else
@word
end)
set@str
=right(@str,len(@str)-
1)
endreturn
@pyend
函式建立之後,可以用下面的語句檢查該函式:
select dbo.fun_getpy ('56g中國人民rm
')
在機器上執行之後的結果如下:
56gzgrmrm
SQL2005使用CLR函式獲取行號
行號可以廣泛使用在分頁或者報表當中。sql2005使用row number來獲取,但這個需要配合order來處理,資料量大的情況下可能會影響效能。要實現clr自定函式返回行號的關鍵問題是乙個自增長的序列如何儲存,並且需要考慮併發和釋放的問題。這裡我用了乙個靜態的集合來保持這個事物,缺點是每次查詢必須...
SQL2005使用CLR函式獲取行號
行號可以廣泛使用在分頁或者報表當中。sql2005使用row number來獲取,但這個需要配合order來處理,資料量大的情況下可能會影響效能。要實現clr自定函式返回行號的關鍵問題是乙個自增長的序列如何儲存,並且需要考慮併發和釋放的問題。這裡我用了乙個靜態的集合來保持這個事物,缺點是每次查詢必須...
sql2008怎麼轉移到sql2005
一般來說,最新版本會向下相容,如果舊版本想用新版本則不行。但是還是有一些辦法的,可以參考一下。物件資源管理器 沒有的話按f8 連線到你的2008例項 右鍵你要降級的資料庫 任務 生成指令碼 在隨後出現的指令碼中,單擊 下一步 直到 選擇資料庫 步驟,確定資料庫是你要降級的資料庫,並勾選 為所選資料庫...