Respuestas:
% en SQL se puede usar en dos formatos diferentes. Si se usa en una cadena con, LIKE
entonces es un comodín, por ejemplo:
WHERE col_name like '%test%'
Eso significaría encontrar todo lo col_name
que tiene la palabra "prueba".
Pero en esta operación específica, el símbolo% se está utilizando como operador de módulo. El módulo (en una calculadora que normalmente se muestra como MODbotón) devuelve el resto. Puede ser una herramienta bastante útil si usa un bucle for para mostrar datos y desea contar columnas: recientemente he usado el operador de módulo al diseñar una página web. El mío estaba en PHP, pero este es un ejemplo:
$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++ ;
}
Básicamente, esto generaría 1 - 100 y cada tres elementos generaría "Tres elementos", y cada diez elementos generaría "Diez elementos" porque cualquier otro número devolvería un valor, por ejemplo:
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 ;
dará 0
en SQL, no0.5
Las otras respuestas son correctas. Es el operador de módulo, que devuelve el resto de la división.
Pero creo que podría ser útil agregar POR QUÉ es una operación relevante y POR QUÉ puede ser útil a veces.
El X % 2
es el más utilizado porque devuelve si el número es par o impar.
Imagine que desea seleccionar todas las columnas con números pares, puede hacer:
SELECT * FROM table WHERE column % 2 = 0
Si desea seleccionar todas las columnas con números impares, puede hacer:
SELECT * FROM table WHERE column % 2 = 1
Pueden surgir otros casos de uso, por ejemplo, si desea filtrar todas las columnas por su unidad, puede usar esto para obtener todos los números que tienen cero en sus unidades:
SELECT * FROM table WHERE column % 10 = 0