SQL генерация случайных значений для полей таблицы
Написал код для генерации случайных номеров телефонов и имен людей, но проблема возникает в том, что при генерации имен людей могут также выводиться на экран нулевые значения (NULL). Как можно это исправить?
DECLARE @counter int;
SET @counter = 1;
WHILE @counter < 10
BEGIN
SELECT ROUND(RAND()*1e7,0) PhoneNumber,
CHOOSE( CAST(RAND() * 3 + 1 AS INT),'Bill','Steve','Jack') FName
SET @counter = @counter + 1
END;
Ответы (1 шт):
Автор решения: Yitzhak Khabinsky
→ Ссылка
Попробуйте следующее решение.
SQL
DECLARE @counter INT = 1
, @min INT = 1
, @max INT = 3;
WHILE @counter < 10 BEGIN
;WITH rs AS
(
SELECT ROUND(RAND()*1e7,0) AS PhoneNumber
, seq = @min + ROUND(RAND() * (@max - @min), 0)
)
SELECT PhoneNumber, seq
, CHOOSE(seq, 'Bill', 'Steve', 'Jack') AS FName
FROM rs;
SET @counter += 1;
END;
