SQl 偶数截取字符串

Liyp92 2014-09-07 03:17:28
DECLARE @S NVARCHAR(30)
SET @S='A B C D E F'

以空格为分隔符,截取偶数前的字符。
处理结果:
1=‘A B’
2='C D'
3='E F'
...全文
201 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jayzhihui 2014-09-08
  • 打赏
  • 举报
回复
DECLARE @S NVARCHAR(30) SET @S='A B C D E F G H I B K D I' SELECT @S = REPLACE(@S,' ','') SELECT CAST(ROW_NUMBER()OVER(ORDER BY (SELECT 1))AS VARCHAR(10))+'='+SUBSTRING(STR1,number,2) FROM (SELECT @S STR1) A,master..spt_values B WHERE B.TYPE='P' AND number>0 AND number<=LEN(@S) AND number%2<>0
xiaodongni 2014-09-07
  • 打赏
  • 举报
回复
引用 2 楼 u012072926 的回复:
[quote=引用 1 楼 ap0405140 的回复:]


---------------------------
1='A B' 
2='C D' 
3='E F' 

(3 行受影响)
*/
谢谢。再问你一下。 如果一个字符是 符号+数字。 如何将他们分别取出来。 比如‘*010’ 1=‘*’ 2=‘010’ 符号是不固定的,也有可能是两个符号。 如果只是数字‘010’ 1=‘’ 2=‘010’ [/quote] 先用patindex 找出字母出现的位置。然后用SUBSTRING 或者left/right 进行截出字符串。 declare @sql varchar(100)='^%^&&*%^%abcd',@index int , @n varchar(20),@n1 varchar(20) set @index=PATINDEX('%[a-z]%',@sql) set @n=substring (@sql,1,@index-1) set @n1=RIGHT(@sql,len(@sql)-@index+1) select @n,@n1,LEN(@n),LEN(@n1)
Liyp92 2014-09-07
  • 打赏
  • 举报
回复
引用 1 楼 ap0405140 的回复:


---------------------------
1='A B' 
2='C D' 
3='E F' 

(3 行受影响)
*/
谢谢。再问你一下。 如果一个字符是 符号+数字。 如何将他们分别取出来。 比如‘*010’ 1=‘*’ 2=‘010’ 符号是不固定的,也有可能是两个符号。 如果只是数字‘010’ 1=‘’ 2=‘010’
唐诗三百首 2014-09-07
  • 打赏
  • 举报
回复

DECLARE @S NVARCHAR(30)
SET @S='A B C D E F'

;with t as
(select (row_number() over(order by getdate())+1)/2 'rn',
        substring(a.s,b.number,charindex(' ',a.s+' ',b.number)-b.number) 's'
  from (select @S 's') a,master..spt_values b
  where b.[type]='P' and b.number between 1 and len(a.s)
  and substring(' '+a.s,b.number,1)=' ')
select rtrim(a.rn)
       +'='''
       +stuff((select ' '+b.s
               from t b
               where b.rn=a.rn
               for xml path('')),1,1,'')
       +''' '  's'
 from t a
 group by a.rn

/*
s
---------------------------
1='A B' 
2='C D' 
3='E F' 

(3 行受影响)
*/

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧