Risposte:
È l' operatore Modulo .
Restituisce il resto di un numero diviso per un altro.
% in SQL può essere utilizzato in due diversi formati. Se viene utilizzato in una stringa con, LIKE
allora è un carattere jolly, ad esempio:
WHERE col_name like '%test%'
Ciò significherebbe trovare tutto ciò col_name
che contiene la parola "test".
Ma in questa specifica operazione il simbolo% viene utilizzato come operatore modulo. Modulo (su una calcolatrice normalmente mostrata come MODpulsante) restituisce il resto. Può essere abbastanza utile se si utilizza un ciclo for per visualizzare i dati e si desidera contare le colonne: di recente ho usato l'operatore modulo durante la stesura di una pagina web. Il mio era in PHP, ma questo è un esempio:
$count = 0 ;
$records = array () ;
for ( $a = 0 ; $a < 100 ; $a++ )
$records[$a] = $a ;
foreach ( $records as $record )
{
if ( $count % 3 == 0 )
echo '<p>Three items</p>' ;
if ( $count % 10 == 0 )
echo '<p>Ten items</p>' ;
echo '<p>'.$record.'</p>' ;
$count++ ;
}
Ciò produrrebbe sostanzialmente 1 - 100 e ogni tre articoli produrrebbe "Tre articoli", e ogni dieci articoli produrrebbe "Dieci articoli" perché qualsiasi altro numero restituirebbe un valore, ad esempio:
5 / 10 = 0.5 (5 % 10 = 5)
2 / 3 = 0.666... (2 % 3 = 2)
50 / 10 = 5.0 (50 % 10 = 0)
9 / 3 = 3.0 (9 % 3 = 0)
select 5 / 10 ;
fornirà 0
in SQL, non0.5
Le altre risposte sono corrette. È l'operatore modulo, che restituisce il resto della divisione.
Ma penso che potrebbe essere utile aggiungere PERCHÉ è un'operazione rilevante e PERCHÉ potrebbe essere utile a volte.
Il X % 2
è il più usato uno perché restituisce se il numero è pari o dispari.
Immagina di voler selezionare tutte le colonne con numeri pari, puoi fare:
SELECT * FROM table WHERE column % 2 = 0
Se vuoi selezionare tutte le colonne con numeri dispari, puoi fare:
SELECT * FROM table WHERE column % 2 = 1
Possono verificarsi altri casi d'uso, ad esempio, si desidera filtrare tutte le colonne in base alla loro unità, è possibile utilizzare questo per ottenere tutti i numeri che hanno zero nelle loro unità:
SELECT * FROM table WHERE column % 10 = 0