W SQL Server, w jaki sposób wybrać wiersze 10, 20, 30, 40 itd. Gdzie RowID jest równe luki niektórych liczb całkowitych (+10). Jest 50k wierszy, więc używanie IN (1,10,20, itd.) Jest pracochłonne.WYBIERZ wiersze, które są wielokrotnością x
SELECT * FROM 'TABLENAME' WHERE RowID = 10 (+ 10)
Dzięki, nauczyłem się, że Mod oznacza modulo, który reprezentuje pozostałą część dzielenia liczby całkowitej. Jeśli jednak wykonasz 12 MOD 10, wynikiem jest 2, a jeśli wykonasz 3 MOD 5, wynikiem będzie 0, a! MOD nie zostanie rozpoznane przez SQL. % jest poprawnym symbolem, ale nie jest właściwym operatorem dla mojej potrzeby. Dzieki za probe. –
Mylisz się. 3 MOD 5 to 3. Odchodzi pozostała część podziału, dlatego gdy jego podział jest doskonały, będzie wynosił zero. n MOD 10 będzie wynosił 0 dla 10, 20, 30, 40, 50 itd. Możesz użyć tych informacji, aby dokładnie określić, które wiersze chcesz. – Havenard
To był mój scotoma: http://www.tizag.com/sqlTutorial/sqloperators.php Moduł wykonuje podział, dzieląc pierwszą cyfrę przez drugą cyfrę, ale zamiast zwracania ilorazu zwracana jest wartość "pozostałej" zamiast. przypadku gdy klauzula który działa w MSSQL (mi) GDZIE (PortalID% 10 = 0) Powoduje to co 10 id wybrany GDZIE (PortalID% 50 = 0) Powoduje to co 50 wybiera identyfikator –