生成指定數字範圍的記錄行

2022-05-13 13:50:47 字數 1501 閱讀 2695

/*

******************************====

*//*

功能: 獲取指定範圍的數字數列

*//*

說明: 交叉最後層級的cte得到的資料行:在l級(從0開始計數)得到的行的總數為2^2^l。

*//*

例如:在5級就會得到4 294 967 596行。5級的cte提供了超過40億的行。

*//*

*//*

建立: 2016-07-16

*//*

修改:

*//*

2016-08-19 對 @binthigh、@bintlow 進行判斷,防止top子句含有無效的值

*//*******************************====

*/create

function

dbo.fn_getnums

(

@bintlow

bigint

,

@binthigh

bigint

) returns

table

asreturn

(

with

l0 as (select c from (values(1), (1)) as

lo(c)),

l1 as (select

1as c from l0 as t cross

join l0 as

t2),

l2 as (select

1as c from l1 as t cross

join l1 as

t2),

l3 as (select

1as c from l2 as t cross

join l2 as

t2),

l4 as (select

1as c from l3 as t cross

join l3 as

t2),

l5 as (select

1as c from l4 as t cross

join l4 as

t2),

nums

as (select row_number() over (order

by (select

null)) as rownum from

l5)

select

top (case

when

@binthigh

>=

@bintlow

then

@binthigh

-@bintlow+1

else

0end) @bintlow

+ rownum -1as

num

from

nums

order

by rownum asc)

go

Java生成指定範圍的隨機數或指定陣列中的隨機數

一 生成指定範圍的隨機數 要生成在 min,max 之間的隨機整數,得到0到9的隨機數 return public int getrangedate random.nextint max 表示生成 0,max 之間的隨機數,然後對 max min 1 取模。以生成 10,20 隨機數為例,首先生成0...

刪除陣列中的指定數字

編寫乙個函式void fun int bb int n,int y 其中 n表示bb陣列中元素的個數。函式功能 刪除bb中所有值為y元素,bb陣列元素的值和y的值由主函式通過鍵盤讀入。作者的源 是這樣的 1 void fun int bb int n,int y 2 11 以上 12 也沒想他到底 ...

Excel按照指定概率生成選定範圍內數字

今天有這麼乙個需求,需要按照指定的概率比如20 40 40 的概率對應生成1 2 3這3個數字 excel中如何實現呢?應該用什麼函式呢?引數又是什麼呢?首先這個功能不是單一的excel函式可以解決的需要兩個函式,分別是lookup和rand 最終的結果如下 lookup rand 100,這裡面需...