Cadenassolo PostgreSQL

STARTS_WITH

Comprueba si una cadena empieza por el prefijo indicado.

Sintaxis

STARTS_WITH(<texto>, <prefijo>)
<texto> ^@ <prefijo>

Devuelve true o false. Hace lo mismo que LIKE '<prefijo>%', pero no tienes que preocuparte por % y _ dentro del prefijo: se compara literalmente. El operador ^@ es una forma más corta de escribir lo mismo.

Datos para los ejemplos

employees

namedepartmentsalarybonusphone
Emmabackend1200300+44 7700 900123
Liambackend1000NULLNULL
Oliviafrontend1350150+44 7700 900456
Noahfrontend950NULL+44 7700 900789
Sophiadesign1200200NULL

Estas tablas ya están creadas en el entorno de pruebas y los ejemplos de abajo las usan. ¿Quieres repetirlo en tu propia base de datos? Copia el SQL.

¿Empieza por el prefijo?
SELECT STARTS_WITH('PostgreSQL', 'Post') AS post,
STARTS_WITH('PostgreSQL', 'post') AS lowercase;
postlowercase
truefalse
Teléfonos con el prefijo +44
SELECT name, phone
FROM employees
WHERE STARTS_WITH(phone, '+44');
namephone
Emma+44 7700 900123
Olivia+44 7700 900456
Noah+44 7700 900789
Cuando el prefijo contiene _
SELECT STARTS_WITH('userX1', 'user_') AS starts_with,
'userX1' LIKE 'user_%' AS like_matches;
starts_withlike_matches
falsetrue

En LIKE, _ significa «cualquier carácter», así que userX1 encaja. STARTS_WITH compara el prefijo literalmente.

Ten en cuenta

Las mayúsculas importan: STARTS_WITH('Emma', 'em') da false. Para no distinguirlas: STARTS_WITH(LOWER(name), 'em').

Para NULL el resultado es NULL, así que en WHERE esa fila simplemente no pasa.

Funciones relacionadas