Він генерує унікальне значення кожного разу, коли ви його виконуєте. Значення, яке він виробляє, є випадково згенерованим 16-байтовим GUID (глобально унікальним ідентифікатором).
Це призводить до SQL-запиту з випадковим сортуванням у поверненому результаті. Коли ми використовуємо Order by newid у запиті SELECT, NEWID() виконується для кожного рядка. Потім рядки сортуються відповідно до випадкового числа, наданого NEWID(). Після цього запит SELECT повертає результат відповідно до решти пунктів у запиті.
що ти намагаєшся зробити RAND() повертає псевдовипадкове значення з плаваючою точкою від 0 до 1, винятково. NEWID() створює унікальне значення типу uniqueidentifier . newid() фактично не генерує випадкові числа, він генерує GUID, які мають випадкову частину, і добре служать своїй меті для випадкового впорядкування.
Функція NEWID(). генерує унікальне значення ідентифікатора. UUID можна використовувати для унікальної ідентифікації об’єктів у базі даних. Значення генеруються таким чином, що значення, створене на одному комп’ютері, не збігається зі значенням, створеним на іншому, тому їх також можна використовувати як ключі в середовищах реплікації та синхронізації.
Ці UUID здебільшого є випадково згенерованими 36-символьними рядками. Технічно кілька символів із кожного рядка генеруються зі значень дати й часу, але більшість із них є випадковими або псевдовипадковими. Перегляньте цей документ, щоб дізнатися більше. Оскільки генерація абсолютно випадкова, вони дуже ймовірно будуть унікальними.