A表
type 字段
08-04-aa-bb
每个字段有3个-,固定的
我想拆分他变成4个字段,字段名称无所谓,变成n1,n2,n3,n4也行
解决方案 »
- SQL Server (SQLEXPRESS) 服务因 %%17058 服务特定错误而停止(在线等)
- 请教group by 的问题
- delphi、sqlserver2000开发的程序在win7下运行出现sa登陆失败
- sql2000链接服务器连接DB2能成功,sql2008就不行
- 链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 不包含表 "xactions"。该表不存在,或者当前用户没有访问该表的权限。
- 怎样利用sqldmo备份和恢复数据库
- 动态添加一个字段后,对已有的纪录跟新这个字段的值,返回 《服务器: 消息 264,级别 16 在结果列的列表中多次出现列名 》的 错误
- sql server 2005记录解密
- 请教DatabaseMetaData.getTables()方法中各参数的含义,严重谢!
- 帮助!机器启动的问题!
- 求一条去重的sql(三个列视为一个整体去重)
- sql中多层引号问题
create function[dbo].[stringsplit](@strnvarchar(max),@spliternvarchar(10))returns@tbtable(chnvarchar(256))asbegindeclare@numint,@posint,@nextposintset@num=0set@pos=1while(@pos<=len(@str))beginselect@nextpos=charindex(@spliter,@str,@pos)if(@nextpos=0or@nextposisnull)select@nextpos=len(@str)+1insertinto@tbvalues(rtrim(ltrim(substring(@str,@pos,@nextpos-@pos))))select@pos=@nextpos+1endreturnendSELECT * from [dbo].[StringSplit] ('08-04-aa-bb' ,'-')
04
aa
bb我是希望形成一个字段select * ,'' as n1,'',as n2,'' as n3,'' as n4 from
with tb(a) as(
select '08-04-aa-bb'),
tbb (a)as (
select RIGHT(a,len(a)-CHARINDEX('-',a))from tb
),
tbbb(a)as(
select RIGHT(a,len(a)-CHARINDEX('-',a))from tbb
),
tbbbb(a)as(
select RIGHT(a,len(a)-CHARINDEX('-',a))from tbbb
)
select LEFT(a,charindex('-',A)-1) from tb union all
select LEFT(a,charindex('-',A)-1) from tbb union all
select LEFT(a,charindex('-',A)-1) from tbbb union all
select * from tbbbb
也就是如何得到第一个-前面的,第二个-前面的
with tb(a) as( select '08-04-aa-bb'),
tbb (a)as ( select RIGHT(a,len(a)-CHARINDEX('-',a))from tb ),
tbbb(a)as( select RIGHT(a,len(a)-CHARINDEX('-',a))from tbb ),
tbbbb(a)as( select RIGHT(a,len(a)-CHARINDEX('-',a))from tbbb )
select LEFT(tb.a,charindex('-',tb.A)-1)n1,n2,n3,tbbbb.a n4 from tb left join
(select LEFT(tbb.a,charindex('-',tbb.A)-1)n2 from tbb)b on 1=1 left join
(select LEFT(tbbb.a,charindex('-',tbbb.A)-1)n3 from tbbb)c on 1=1 left join
tbbbb on 1=1这样?