2010年6月1日 星期二

sql 處理中英文字串長度

原文:SQL處理中英文字串長度的範例
-- 計算中英文字串長度
DECLARE @string varchar(50)
set @string='一二三456七八9十'
select @string '字串', len(@string) '中英字數', datalength(@string) '資料長度', datalength(@string)-len(@string) '中文字數'

--------------------------------------------------------------------------------
-- 截取中英文字串長度
DECLARE @string varchar(50), @l int
set @string='一二三456七八9十'
set @l=8
select substring(@string,1,@l) '取字數', case when datalength(@string)>8 then convert(varchar(8),@string)+'...' else convert(varchar(8),@string) end '取資料數'
select substring(@string,1,@l)

--以上為原文--

個人覺上述寫法,運用在論壇時;當標題過長時,使用此法 "..." 倒是不錯的作法.
個人開發環境均是application環境,此種 "..." 就不大適合;要就截掉!!
倒是值得一提的是:
DATALENGTH = 是取位元組數 ; 當"ABCD甲乙丙"=10 bytes
LEN = 是取非位元組數 ; 當"ABCD甲乙丙"=7 個字元數

沒有留言:

張貼留言