SELECT * FROM TABLE1
ID Name 1 SOF 2 USER
我想查询哪一个,两个或四个....次ID = 1在行
在Ms.Access中对此有何疑问?
ID Name 1 SOF 1 SOF 1 SOF 2 USER
答案 0 :(得分:1)
以下示例使用SQL Server的CTE语法。
目前,@ID
被选中@Count
次,所有其他记录都被选中一次。无论你想要什么ID,都可以很容易地将它扩展到任何数量。
<强>设置强>
DECLARE @Table TABLE (ID INTEGER, Name VARCHAR(32))
DECLARE @Count INTEGER
DECLARE @ID INTEGER
SET @Count = 3
SET @ID = 1
INSERT INTO @Table
SELECT 1, 'SOF'
UNION ALL SELECT 2, 'USER'
SQL声明
;WITH Multiple AS (
SELECT ID, Name, cnt = 1
FROM @Table
WHERE ID = @ID
UNION ALL
SELECT ID, Name, cnt = cnt + 1
FROM multiple
WHERE cnt < @Count
)
SELECT ID, Name
FROM Multiple
UNION ALL
SELECT ID, Name
FROM @Table
WHERE ID <> @ID
答案 1 :(得分:0)
此解决方案依赖于LabelCount字段(列)具有所需数量的标签,以及Coiunter表,其字段为Num,其中包含从1到最大标签数的整数:
SELECT Id, [Name]
FROM Table1, [Counter]
WHERE Counter.Num<=[LabelCount]
答案 2 :(得分:0)
在Access报告中,可以在不更改SQL的情况下完成。这篇非常古老的知识库文章对此进行了解释,并且我已经将它用于生产使用近15年了!