SQL – przydatne

PĘTLA

declare @klient_id int
 DECLARE x cursor local fast_forward
for (select distinct id from klienci)

OPEN x
FETCH NEXT FROM x INTO @klient_id
WHILE @@FETCH_STATUS = 0
 
 BEGIN

 update klienci set alarm = null where id = @klient_id

 FETCH NEXT FROM x INTO @klient_id
 END

CLOSE x
DEALLOCATE x

NUMEROWANIE REKORDÓW

Plan liniowy:
select *, lp % 4 podzial2 FROM (select *, ROW_NUMBER() OVER(ORDER BY dt) lp from dbo.Stocks) o
Można ustawić resetowanie numeru zmieniając dzielenie modulo:
dla 0,1,0,1,0,1,0,1,
lp % 2
dla 0,1,2,0,1,2,0,1,2,0,1,2
lp % 3
dla 1,2,1,2,1,2,1,2
lp % 2 + 1
Numerowanie losowe:
Jeżeli kolejność jest nieistotna to można losowo ponumerować wiersze. Statystycznie wyjdzie równy rozkład, choć praktycznie rekordów w jednej grupie będzie więcej niż w innej:
select *, CAST(RAND(CHECKSUM(NEWID())) * (2 – 0.00000000001) AS INT) from dbo.Stocks
 
2 to parametr.

Features Stats Integration Plugin developed by YD