En SQL Server, puedes usar la función UPPER()
para convertir una cadena a mayúsculas y la función LOWER()
para convertirla a minúsculas. Sin embargo, no hay una función incorporada específica para capitalizar la primera letra de cada palabra en una cadena.
Si deseas capitalizar la primera letra de cada palabra en una columna de una tabla, puedes hacerlo utilizando una combinación de funciones. Aquí te muestro un ejemplo de cómo lograrlo:
Supongamos que tienes una tabla llamada MiTabla
con una columna llamada MiColumna
que contiene las cadenas que deseas capitalizar. Puedes usar la siguiente consulta:
SELECT STRING_AGG(CONCAT(UPPER(LEFT(valor, 1)), LOWER(SUBSTRING(valor, 2, LEN(valor)))), ' ') AS CapitalizedWords FROM ( SELECT value AS valor FROM STRING_SPLIT((SELECT MiColumna FROM MiTabla), ' ') ) AS Words;
Este ejemplo divide cada cadena en palabras utilizando la función STRING_SPLIT()
y luego aplica UPPER()
para la primera letra y LOWER()
para el resto de cada palabra. Luego, utiliza STRING_AGG()
para volver a unir las palabras capitalizadas en una sola cadena.
Por favor, ten en cuenta que este enfoque se basa en la disponibilidad de las funciones STRING_SPLIT()
y STRING_AGG()
, que están disponibles a partir de SQL Server 2017 y versiones posteriores. Si estás utilizando una versión anterior, es posible que debas buscar enfoques alternativos, como usar funciones definidas por el usuario o realizar manipulaciones de cadenas más complejas.
Solución alternativa
Un seguidor ha sugerido otra solución que podemos utilizar para poner en mayúscula la primera letra. Además esta solución es compatible con versiones más antiguas de servidores SQL Server.
SELECT SUBSTRING(UPPER(Columna),1,1) + SUBSTRING(LOWER(Columna),2,LEN(Columna)) as Palabra FROM Tabla
¡Muchas gracias @calirinaldi, entre todos podemos hacer un sitio mejor para guardar soluciones!
Deja un comentario