РЭНД, не отличающийся для каждой строки в ОБНОВЛЕНИИ T-SQL

function CurrencyFormatted(amount)
{
    var i = parseFloat(amount);
    if(isNaN(i)) { i = 0.00; }
    var minus = '';
    if(i < 0) { minus = '-'; }
    i = Math.abs(i);
    i = parseInt((i + .005) * 100);
    i = i / 100;
    s = new String(i);
    if(s.indexOf('.') < 0) { s += '.00'; }
    if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
    s = minus + s;
    return s;
}

От WillMaster.

18
задан gbn 9 September 2009 в 04:52
поделиться

2 ответа

Используйте RAND (CHECKSUM (NEWID ()))

  • NEWID возвращает GUID
  • CHECKSUM делает его int, случайным образом
  • int задает значение RAND

В вашем случае вы можете модулировать контрольную сумму, потому что CHECKSUM (NEWID ()) уже случайна.

CHECKSUM(NEWID()) % 365
34
ответ дан 30 November 2019 в 07:23
поделиться

, если вам нужны только дни прошлого года, используйте это (на основе ответа @gbn):

select GETDATE ( ) - ABS( CHECKSUM(NEWID()) % 365 )
3
ответ дан 30 November 2019 в 07:23
поделиться