sql >> Database >  >> RDS >> Sqlserver

Genereer een lijst met nieuwe unieke willekeurige getallen in T-SQL

U kunt cte gebruiken met berekende codes, distinct en controleer of de code al in uw tabel bestaat:

;with cte_stream as (
    select
        floor(cast(crypt_gen_random(4) as bigint) / 4294967296 * ((@max - @min) + 1)) + @min as Code
    from sys.all_objects as s1 
        cross join sys.all_objects as s2;
)
insert into [Codes]
select distinct top (@n) s.Code
from cte_stream as s
where not exists (select * from [Codes] as c where c.Code = s.Code)

Dus distinct helpt u botsingen tussen nieuwe codes en exists . te voorkomen u helpen botsingen met reeds bestaande codes in de [Codes] . te voorkomen tabel, en order by newid() helpt u om willekeurige waarden van nieuwe codes te krijgen



  1. Hoe twee keer naar één CTE verwijzen?

  2. Hoe haal ik min max en avg uit de tabel in mysql met verschillende rijen?

  3. Java - exacte betekenis http.maxConnections

  4. Implementatie van de meest bekeken functiedatabase