Database 从数据库数组生成两列列表
我试图从数据库中的一列中提取数据,但我希望将数据按字母顺序分为两列。我尝试浮动列表,但结果如下:Database 从数据库数组生成两列列表,database,list,Database,List,我试图从数据库中的一列中提取数据,但我希望将数据按字母顺序分为两列。我尝试浮动列表,但结果如下: A\uuuuuub C\uuuuuuud E\uuuuf 我希望它看起来像这样: A\uuuuuuud B____E C_uuuuf最好的方法是从数据库中以单列a-z的形式返回它,并在应用程序中重新格式化,然后按照您的意愿显示它您说的是float,所以我假设您正在编写html。。。你得把结果一分为二。像这样的 <div id="column-1" style="width: 49%; floa
A\uuuuuub
C\uuuuuuud
E\uuuuf
我希望它看起来像这样:
A\uuuuuuud
B____E
C_uuuuf
最好的方法是从数据库中以单列a-z的形式返回它,并在应用程序中重新格式化,然后按照您的意愿显示它您说的是float,所以我假设您正在编写html。。。你得把结果一分为二。像这样的
<div id="column-1" style="width: 49%; float: left;">
<!--first half here-->
</div>
<div id="column-2" style="width: 49%; float: left;">
<!--second half here-->
</div>
我同意KM,让开发人员做一些工作——在过程代码中,这类工作必须更容易完成。但如果他们都在度假(就像我在两个小时内一样),这个弗兰肯斯坦式的查询就行了。这是在SQL2005中使用公共表表达式实现的,但是使用临时表也可以实现类似的功能(即使更笨拙)
;WITH SourceData (ProductId, EvenOdd)
as (select ProductId, row_number() over (order by ProductId) EvenOdd
from Products)
,OddData (ProductId, OrderNum)
as (select ProductId, row_number() over (order by EvenOdd) OrderNum
from SourceData
where EvenOdd%2 = 1)
,EvenData (ProductId, OrderNum)
as (select ProductId, row_number() over (order by EvenOdd) OrderNum
from SourceData
where EvenOdd%2 = 0)
SELECT od.ProductId, ed.Productid
from OddData od
left outer join EvenData ed
on ed.OrderNum = od.OrderNum
“ProductId”是要排序的列。无论序列中是否存在重复或间隙。如果项目数为奇数,则最后一个右侧值将为空。您甚至可以将其扩展为返回超过2列。这样做会破坏行中的关系,可以接受吗?