Tecnología

Cómo Validar el Dígito Verificador del RUT en SQL

Función SQL para calcular y verificar el dígito verificador del RUT chileno directamente en la base de datos, compatible con PostgreSQL, MySQL y SQL Server.

2026-06-21 4 min lectura Rutificador Chile

A veces necesitas validar o calcular el dígito verificador directamente en la base de datos. Aquí está la implementación para PostgreSQL y MySQL.

Función en PostgreSQL

CREATE OR REPLACE FUNCTION calcular_dv(cuerpo TEXT) RETURNS TEXT AS $$
DECLARE
  serie INT[] := ARRAY[2,3,4,5,6,7];
  digitos TEXT[];
  suma INT := 0;
  i INT;
  resto INT;
BEGIN
  digitos := regexp_split_to_array(reverse(cuerpo), '');
  FOR i IN 1..array_length(digitos, 1) LOOP
    suma := suma + digitos[i]::INT * serie[((i-1) % 6) + 1];
  END LOOP;
  resto := 11 - (suma % 11);
  IF resto = 11 THEN RETURN '0';
  ELSIF resto = 10 THEN RETURN 'K';
  ELSE RETURN resto::TEXT;
  END IF;
END;
$$ LANGUAGE plpgsql;

-- Uso
SELECT calcular_dv('12345678'); -- '5'
SELECT * FROM personas WHERE calcular_dv(split_part(rut, '-', 1)) = split_part(rut, '-', 2);

Preguntas frecuentes

¿Es eficiente validar RUTs en SQL?

Para validaciones masivas de datos existentes sí. Para validación en tiempo real en aplicaciones web, es mejor hacerlo en el lenguaje de la aplicación para evitar roundtrips a la base de datos.

Busca el RUT de cualquier persona en Chile

El Rutificador de nombreyrut.com es gratuito y tiene millones de registros públicos.