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
展开
 我来答
射手幽灵伊
2013-08-09 · TA获得超过2716个赞
知道大有可为答主
回答量:4955
采纳率:81%
帮助的人:1956万
展开全部
可以用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 就是你的字段名,如果是其他字段名,要改一下。
一猥琐大叔
2013-08-09 · TA获得超过103个赞
知道答主
回答量:45
采纳率:0%
帮助的人:22.3万
展开全部
很简单啊,分段查询啊,改列名
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
上面简单的列子啦,如果你要自动生成的可以写个循环算
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
亥谷翠03q
2013-08-09
知道答主
回答量:30
采纳率:0%
帮助的人:9.2万
展开全部
不知道你因为什么业务这么去取数据,但是我觉得你可以换个思路,不直接用sql取出来分成几个字段,直接select * from table 然后通过你用的语言(java、C、等等)通过循环遍历判断使用就行。
备注:你可以尝自己写个function或者存储过程,循环判断什么的,看看能行不。真心没写过这种需求的sql
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式