请问如何建立这样的视图?

shuangren 2003-11-21 08:00:54
name
----
a
b
c
d
e
f
g
h

变成

name name name name
-------------------
a b c d
e f g h
...全文
28 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuangren 2003-11-22
  • 打赏
  • 举报
回复
对,这下终于解决了,谢谢,另有80分酬谢,请留意新贴
pengdali 2003-11-22
  • 打赏
  • 举报
回复
select IDENTITY(int,0,1) id,name into #a from 你的表


select
max(case when id%4=0 then name end) name1,
max(case when id%4=1 then name end) name2,
max(case when id%4=2 then name end) name3,
max(case when id%4=3 then name end) name4
from #a group by id/4 order by id/4
shuangren 2003-11-22
  • 打赏
  • 举报
回复
没想到你还在,真得谢谢你
shuangren 2003-11-22
  • 打赏
  • 举报
回复
可以是可以,记录少的时候可以,顺序和总数都对,但多的话就乱了,你可以找个900条记录以上的表试试
pengdali 2003-11-21
  • 打赏
  • 举报
回复
select IDENTITY(int,0,1) id,name into #a from 你的表


select
max(case when id%4=0 then name end) name1,
max(case when id%4=1 then name end) name2,
max(case when id%4=2 then name end) name3,
max(case when id%4=3 then name end) name4
from #a group by id/4


不行吗?
shuangren 2003-11-21
  • 打赏
  • 举报
回复
这样没有空值了,但又出现一个问题,当记录数很多时,我这里大概820条以后查询出的记录的顺序就会乱,而且总数不一致
pengdali 2003-11-21
  • 打赏
  • 举报
回复
select
max(case when rowid%4=0 then name end) name1,
max(case when rowid%4=1 then name end) name2,
max(case when rowid%4=2 then name end) name3,
max(case when rowid%4=3 then name end) name4
from (select (select sum(1) from 表 where id<=a.id) rowid,* from 表 a) tem group by rowid/4
shuangren 2003-11-21
  • 打赏
  • 举报
回复
挺好的,但有一个问题

id name
--------
3 a
5 b
6 c
7 d
8 e
9 f
10 g
11 h

查询的结果是

name1 name2 name3 name4
--------------------------
NULL NULL NULL a
NULL b c d
e f g h

会有许多空值
pengdali 2003-11-21
  • 打赏
  • 举报
回复
有多个字段。

那你列出来呀。
leecooper0918 2003-11-21
  • 打赏
  • 举报
回复

很莫名其妙的视图.
shuangren 2003-11-21
  • 打赏
  • 举报
回复
有多个字段。

我的目的是把多条记录合并成一条记录,这样DataGrid就可以一行显示多条记录了
pengdali 2003-11-21
  • 打赏
  • 举报
回复
select IDENTITY(int,0,1) id,name into #a from 你的表


select
max(case when id%4=0 then name end) name1,
max(case when id%4=1 then name end) name2,
max(case when id%4=2 then name end) name3,
max(case when id%4=3 then name end) name4
from #a group by id/4
pengdali 2003-11-21
  • 打赏
  • 举报
回复
只有一列?

34,874

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧