2013-07-14 16 views
6

olarak seç SQL Server'da satır 10, 20, 30, 40 vb. Satırları seçiyorum, burada RowID bir tam sayı (+10) eşittir. 50k satır vardır, bu yüzden IN (1,10,20, vs) kullanmak zahmetlidir.Satır sayısını x

SELECT * FROM 'TABLENAME' WHERE RowID = 10 (+ 10) 

cevap

7

Bunun için modulo kullanabilirsiniz.

SELECT * FROM `table` WHERE (`id` % 10) = 0 

SELECT * FROM `table` WHERE (`id` MOD 10) = 0 

SELECT * FROM `table` WHERE !MOD(`id`, 10) 

Herkes yapmalıdır.

+0

Teşekkürler, Mod moduso anlamına gelir öğrendim, bir tamsayı bölümünün kalanını temsil eder. Ancak, eğer 12 MOD 10 yaparsanız, sonuç 2 olur ve eğer 3 MOD 5 yaparsanız, sonuç 0 olur ve! MOD SQL tarafından tanınmaz. % doğru sembol, ancak ihtiyacım için uygun operatör değil. Denediğiniz için teşekkürler. –

+0

Yanılıyorsunuz. 3 MOD 5 3'tür. Bölünmenin kalan kısmından uzaklaşır, dolayısıyla mükemmel bir bölünme olduğunda sıfır olur. n MOD 10, 10, 20, 30, 40, 50 vb. için 0 olacaktır. Bu bilgiyi istediğiniz satırları belirlemek için kullanabilirsiniz. – Havenard

+0

Bu benim skotom'mdu: http://www.tizag.com/sqlTutorial/sqloperators.php Modül, birinci basamağı ikinci basamağa bölerek bölme gerçekleştirir, ancak bir bölümü döndürmek yerine, "kalan" bir değer döndürülür yerine. (PortalID% 10 = 0) Bu, her 10 id sonuçlanır (PortalID% 50 = 0) Bu, her 50 id sonuçlanır seçilen (benim için) MSSQL çalışır MADDE seçilen –

0

Sana modülü operatör bu emrin mod 10 = 0. şey rowID kullanmak gerekir sanıyorum.

+0

Bu benim tahminimden daha yakın bir sonuçla sonuçlanır, ancak her 100. satırın olmasını istiyorsanız, ModuleID% kullanıyorum .01 = 0. İntestend% divisor ihtiyacım olan şey için bana mantıklı gelmiyor - her 10 satırda Satır 500 ile başlayarak, örneğin –

+0

bir satır ekleyin> 499 – EvilTeach

+0

genellikle değil mod 100, id olmalıdır. 0 – EvilTeach

İlgili konular