一列数字随机求和等于某数的算法(整理)

您所在的位置:网站首页 随机数相加等于指定数字吗对吗 一列数字随机求和等于某数的算法(整理)

一列数字随机求和等于某数的算法(整理)

2024-07-16 16:59| 来源: 网络整理| 查看: 265

现在有一个表Table1进行随机查询, 检索结果记录条数不限, 但是要求Num求和结果为一个固定值,如结果为15 ID    NUM 1    5 2    3 3    2 4    5 5    4 6    5 7    3 8    2 9    4 10    3

 

IF OBJECT_ID('[tb]') IS NOT NULL

    DROP TABLE [tb]

GO

CREATE TABLE [tb]

(

    [ID] INT, [Num] INT

)

INSERT [tb]

SELECT 1, 5 UNION ALL

SELECT 2, 3 UNION ALL

SELECT 3, 2 UNION ALL

SELECT 4, 5 UNION ALL

SELECT 5, 4 UNION ALL

SELECT 6, 5 UNION ALL

SELECT 7, 3 UNION ALL

SELECT 8, 2 UNION ALL

SELECT 9, 4 UNION ALL

SELECT 10, 3

GO

--select * from [tb]

 

-->SQL2005以上

;WITH t AS

(

    SELECT *, PATH = CAST(id AS VARCHAR), total = num

    FROM tb

    UNION ALL

    SELECT b.id, b.num, CAST(a.path+'-'+RTRIM(b.id) AS VARCHAR), a.total+b.num

    FROM t a

    JOIN tb b

        ON  a.idSQL2000以上

DECLARE @idtb TABLE(id INT)

DECLARE @num INT, @id INT, @sum  INT

SET @sum = 0

WHILE @sum15

BEGIN

    SELECT TOP 1 @id = id, @num = num

    FROM tb

    WHERE num15)

    BEGIN

        DELETE @idtb

    END

END

 

SELECT *

FROM tb

WHERE id IN (

    SELECT id

    FROM @idtb

    )

/*

ID          Num

----------- -----------

3           2

4           5

6           5

10          3

 

(4 行受影响)

*/

 

http://topic.csdn.net/u/20090421/12/5113c4ab-4631-4dc9-be9f-e6d88f0526d8.html



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3