我在SQL中有一个字符串假设为“ABCDEF”。
我想以下表格式显示: -
A
B
C
D
E
F
如果不使用CURSOR等,我怎么能这样做。
答案 0 :(得分:0)
with rec(recText, letterno) AS
(
Select LEFT('ABCDEF',1),
1
Union all
Select Left(RIGHT('ABCDEF',len('ABCDEF') - rec.letterno),1),
letterno +1
from rec
where rec.letterno < len('ABCDEF')
)
select top 1 STUFF( (
SELECT ' '+recText FROM rec FOR XML PATH('') ), 1, 1, '') FROM rec
t-sql 2008解决方案不知道这是否适合您的问题
答案 1 :(得分:0)
在Sql Server中,您可以使用
来自变量
declare @str varchar(100) set @str = 'ABCDEF'
select SUBSTRING(@str, number, 1)
from master..spt_values
where type='P' and number between 1 and LEN(@str)
order by number
如果您要从表格中的列分割
create table strtest (id int, str varchar(100))
insert strtest select 1, 'abcdef'
insert strtest select 2, 'qwertyui'
select t.str, v.number, SUBSTRING(t.str, v.number, 1)
from strtest t
inner join master..spt_values v
on v.type='P' and v.number between 1 and LEN(t.str)
order by t.id, v.number
如果您正在使用任何其他DBMS,您可以执行类似的操作,但如果没有准备就可以创建数字表。