我想从表中选择,但问题是,我有一个因子列,指示必须选择此行的次数(这是一个仅用于演示的示例表):
ID Factor Count
-------------------------------
1 1 235
2 2 345
3 2 214
4 3 95
5 1 135
6 1 750
Run Code Online (Sandbox Code Playgroud)
查询:
select top 6
[id], [count]
from
table
order by
id --somewhere in here I must take factor into consideration
Run Code Online (Sandbox Code Playgroud)
结果必须是:
ID Count
---------------------
1 235
2 345
2 345
3 214
3 214
4 135
Run Code Online (Sandbox Code Playgroud)
这应该足够了:
SELECT A.*
FROM dbo.YourTable A
INNER JOIN (SELECT *
FROM master.dbo.spt_values
WHERE type = 'P') B
ON A.Factor >= B.number+1
Run Code Online (Sandbox Code Playgroud)
这是一个sqfiddle,它有一个演示.
结果是:
???????????????????????
? ID ? Factor ? Count ?
???????????????????????
? 1 ? 1 ? 235 ?
? 2 ? 2 ? 345 ?
? 2 ? 2 ? 345 ?
? 3 ? 2 ? 214 ?
? 3 ? 2 ? 214 ?
? 4 ? 3 ? 95 ?
? 4 ? 3 ? 95 ?
? 4 ? 3 ? 95 ?
? 5 ? 1 ? 135 ?
? 6 ? 1 ? 750 ?
???????????????????????
Run Code Online (Sandbox Code Playgroud)
如果factor列可以大于2048,则可以使用数字表.
| 归档时间: |
|
| 查看次数: |
522 次 |
| 最近记录: |