SQL专家,
有没有一种使用SQL将数据运行组合在一起的有效方法?
或者在代码中处理数据会更有效率.
例如,如果我有以下数据:
ID|Name
01|Harry Johns
02|Adam Taylor
03|John Smith
04|John Smith
05|Bill Manning
06|John Smith
Run Code Online (Sandbox Code Playgroud)
我需要显示这个:
Harry Johns
Adam Taylor
John Smith (2)
Bill Manning
John Smith
Run Code Online (Sandbox Code Playgroud)
@Matt:对不起,我在使用嵌入式html表格格式化数据时遇到了问题,这个表格在预览中有效但不在最终显示中.
尝试这个:
select n.name,
(select count(*)
from myTable n1
where n1.name = n.name and n1.id >= n.id and (n1.id <=
(
select isnull(min(nn.id), (select max(id) + 1 from myTable))
from myTable nn
where nn.id > n.id and nn.name <> n.name
)
))
from myTable n
where not exists (
select 1
from myTable n3
where n3.name = n.name and n3.id < n.id and n3.id > (
select isnull(max(n4.id), (select min(id) - 1 from myTable))
from myTable n4
where n4.id < n.id and n4.name <> n.name
)
)
Run Code Online (Sandbox Code Playgroud)
我想这会做你想做的。不过有点拼凑。
唷!经过几次编辑后,我想我已经解决了所有的边缘情况。
| 归档时间: |
|
| 查看次数: |
242 次 |
| 最近记录: |