日期:2014-05-17  浏览次数:20483 次

中英文字符串截取长度不同的问题
需要向某个变量插入值,例如DECLARE @STR VARCHAR(20);
情况1:SET @STR='AAAAABBBBBCCCCCDDDDDEEEEE',当字符串为全英文时,截取20位。
SET @STR=SUBSTRING(@STR,1,20);
情况2:SET @STR='一a一b一c二d二e三f三g三',当字符串中包含中文时,截取10位。
SET @STR=SUBSTRING(@STR,1,10);

求教于各位,谢谢。

------解决方案--------------------
SET @STR=SUBSTRING(@STR,1,CASE WHEN @STR LIKE '%[吖-咗]%' THEN 10 ELSE 20 END);