SQL语句:如何让一个字段按个数分成几个字段显示
例如:数据库只有唯一字段BHBH1AAAA2.BBBB3.CCCC4DDDD5EEEE6FFFF7GGGG8HHHH假设每个字段只能有三个值,使结果成为:BHBH1BH2...
例如: 数据库只有唯一字段 BH
BH
1 AAAA
2. BBBB
3. CCCC
4 DDDD
5 EEEE
6 FFFF
7 GGGG
8 HHHH
假设每个字段只能有三个值,使结果成为:
BH BH1 BH2
AAAA DDDD GGGG
BBBB EEEE HHHH
3. CCCC FFFF 展开
BH
1 AAAA
2. BBBB
3. CCCC
4 DDDD
5 EEEE
6 FFFF
7 GGGG
8 HHHH
假设每个字段只能有三个值,使结果成为:
BH BH1 BH2
AAAA DDDD GGGG
BBBB EEEE HHHH
3. CCCC FFFF 展开
3个回答
展开全部
可以用SQL的循环来实现,处理如下:
declare @sql varchar(max)
declare @i int
declare @l int
declare @c varchar(10)
select @i = ( select count(1) from 你的表名 )
set @l = 0
set @sql = ' select '
while @l <= @i / 3
begin
set @c = cast( @i as varchar(10) )
set @sql = @sql + max ( case when ( r_n - ) / 3 = ' + @c + then BH end) BH' + @c + ','
set @l = @l + 1
end
set @sql = @sql + ' 1 noshow from ( select row_number() over ( order by BH ) r_n,* from 你的表名 ) s group by ( r_n - 1 ) % 3 '
exec ( @sql )
注意:这其中 BH 就是你的字段名,如果是其他字段名,要改一下。
declare @sql varchar(max)
declare @i int
declare @l int
declare @c varchar(10)
select @i = ( select count(1) from 你的表名 )
set @l = 0
set @sql = ' select '
while @l <= @i / 3
begin
set @c = cast( @i as varchar(10) )
set @sql = @sql + max ( case when ( r_n - ) / 3 = ' + @c + then BH end) BH' + @c + ','
set @l = @l + 1
end
set @sql = @sql + ' 1 noshow from ( select row_number() over ( order by BH ) r_n,* from 你的表名 ) s group by ( r_n - 1 ) % 3 '
exec ( @sql )
注意:这其中 BH 就是你的字段名,如果是其他字段名,要改一下。
展开全部
很简单啊,分段查询啊,改列名
select odename as BH from table where id between 1 and 3
select odename as BH1 from table where id between 4 and 7
select odename as BH2 from table where id between 8 and 9
上面简单的列子啦,如果你要自动生成的可以写个循环算
select odename as BH from table where id between 1 and 3
select odename as BH1 from table where id between 4 and 7
select odename as BH2 from table where id between 8 and 9
上面简单的列子啦,如果你要自动生成的可以写个循环算
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道你因为什么业务这么去取数据,但是我觉得你可以换个思路,不直接用sql取出来分成几个字段,直接select * from table 然后通过你用的语言(java、C、等等)通过循环遍历判断使用就行。
备注:你可以尝自己写个function或者存储过程,循环判断什么的,看看能行不。真心没写过这种需求的sql
备注:你可以尝自己写个function或者存储过程,循环判断什么的,看看能行不。真心没写过这种需求的sql
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询