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