dbo.UDF_Q_RandomNumber()
0 から 1 の間の浮動型乱数を生成するランダム関数を作成しました。
DECLARE @upper = 10
DECLARE @lower = 1
SELECT
ROUND(CAST((@lower + (@upper - @lower) * dbo.UDF_Q_RandomNumber()) AS INT), 0)
上記のコードは、1 から 10 までの乱数を生成します。
#tempTable
ここで、列Id
とを含む 10 行の一時テーブルを作成しましたNumber
。
Id Number
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
SQL クエリ:
CREATE TABLE #tempTable(Id INT, Number INT)
INSERT INTO #tempTable VALUES (1,1)
INSERT INTO #tempTable VALUES (2,2)
INSERT INTO #tempTable VALUES (3,3)
INSERT INTO #tempTable VALUES (4,4)
INSERT INTO #tempTable VALUES (5,5)
INSERT INTO #tempTable VALUES (6,6)
INSERT INTO #tempTable VALUES (7,7)
INSERT INTO #tempTable VALUES (8,8)
INSERT INTO #tempTable VALUES (9,9)
INSERT INTO #tempTable VALUES (10,10)
DECLARE @maxCount INT;
SELECT @maxCount= COUNT(1) FROM #tempTable
SELECT * FROM #tempTable
SELECT Number
FROM #tempTable
WHERE Id = ROUND(CAST((1+(@maxCount-1)*dbo.UDF_Q_RandomNumber())AS INT),0)
DROP TABLE #tempTable
ここでクエリ
SELECT Number
FROM #tempTable
WHERE Id = ROUND(CAST((1+(@maxCount-1)*dbo.UDF_Q_RandomNumber()) AS INT), 0)
選択された ID が 1 から 10 (temptable の行) であり、すべての ID にも値があるため、2 行を返すこともあれば null を返すこともあります。
助けてください 。