5 методов генерации случайных чисел для каждой строки в T-SQL

Чтобы сгенерировать случайное число для каждой строки в T-SQL (Transact-SQL), вы можете использовать различные методы. Вот несколько подходов:

  1. Функция NEWID:
    Вы можете использовать функцию NEWID для создания уникального идентификатора (GUID) для каждой строки, а затем преобразовать его в числовое значение. Вот пример:

    SELECT ABS(CHECKSUM(NEWID())) AS RandomNumber
    FROM YourTable;
  2. Функция СЛЧИС:
    Функция СЛЧИС генерирует случайное значение с плавающей запятой от 0 до 1. Вы можете умножить его на диапазон и преобразовать в целое число, чтобы получить случайное число. Вот пример:

    SELECT CAST(RAND() * 1000 AS INT) AS RandomNumber
    FROM YourTable;
  3. Функция CRYPT_GEN_RANDOM:
    Если вы используете SQL Server 2012 или более поздние версии, вы можете использовать функцию CRYPT_GEN_RANDOM для генерации криптографически безопасных случайных чисел. Вот пример:

    SELECT CAST(CRYPT_GEN_RANDOM(4) AS INT) AS RandomNumber
    FROM YourTable;
  4. Предложение TABLESAMPLE:
    Предложение TABLESAMPLE позволяет вам выбрать процент строк из таблицы. Вы можете объединить его с функцией КОНТРОЛЬНАЯ СУММА(NEWID()), чтобы получить случайное число для каждой строки. Вот пример:

    SELECT ABS(CHECKSUM(NEWID())) AS RandomNumber
    FROM YourTable
    TABLESAMPLE (50 PERCENT);
  5. Функция ROW_NUMBER с ORDER BY NEWID():
    Вы можете использовать функцию ROW_NUMBER вместе с предложением ORDER BY NEWID(), чтобы присвоить порядковый номер каждой строке в случайном порядке. Вот пример:

    SELECT ROW_NUMBER() OVER (ORDER BY NEWID()) AS RandomNumber
    FROM YourTable;