Fantastic article, do you have any links to using the % to return value. never seen the use of % like this (T.N-1)%3 +1
Thank you for the feedback... much appreciated.
As Eirikur states, the "%" (in this case) is the arithmetic "modulo" operator. In SQL Server, that means the straight remainder of division (and it works equally well with integers and real numbers, both positive and negative). It's not quite the same as the modulo operator that EXCEL and the Scientific Calculator in Windows use because those use the "FLOOR" method for calculating Modulo rather than the TRUNCATE method that SQL Server (and most humans) use.
For example, -5%3 will return a "-2" and MOD(-5,3) in Excel will return a "1". Both answers are technically and mathematically correct. You just have to know which method of calculation is being used behind the scenes. To wit, a whole lot of programming languages use the more human natural truncate method (also known as the "Remainder" or "Remainder Method") while others use the not so human natural floor method (described as the"least positive residue" or "modular arithmetic" method in which remainders are only positive) and the documentation will usually NOT tell you which one is being used. The -5 MOD 3 test is a good test for this.
Here's a link for the "% (modulo)" arithmetic operator in SQL Server
WikiPedia has a good introduction to the variants of the operation as well as links to other articles on the subject.
Our human base 10 numbering system is based on "Mod 10"... it only has digits for 0 to 9.
Also, there's a functional substitution for the Tally Table. One example of that can be found at the "fnTally" link in my signature line below.
is pronounced "ree-bar
" and is a "Modenism
" for R
First step towards the paradigm shift of writing Set Based code:
________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.
"Change is inevitable... change for the better is not".
"Dear Lord... I'm a DBA so please give me patience because, if you give me strength, I'm going to need bail money too!"
How to post code problems
How to Post Performance Problems
Create a Tally Function (fnTally)