Bienvenido a la Comunidad de Treehouse
¿Quieres colaborar en errores de código? ¿Tienes errores que necesitan comentarios? ¿Buscas un par de ojos adicionales en tu último proyecto? aquí.
¿Buscas aprender algo nuevo?
Treehouse ofrece una prueba gratuita de siete días para estudiantes nuevos. Obtén acceso a miles de horas de contenido y únete a miles de
Inicia tu prueba gratuita
Hank Boudreau
804 Puntos¿Cómo omitir los puntos suspensivos en el problema de Truncate Names que son menores a 10?
En el problema Truncate Names de la sesión de práctica, se te pide que agregues puntos suspensivos a cualquier nombre con más de 10 letras. Ordené por longitud de nombre ascendente y noté que agregó puntos suspensivos a nombres con menos de 10 letras. Aquí está lo que escribí
select substr(name, 1, 10) || ... como Nombres, longitud(name) como Longitud from actores
order por longitud asc
Uno de los resultados es el nombre "Lu Kai..." y aunque esto tiene menos de 10 letras (el nombre es solo "Lu Kai" en la base de datos) aún agrega los puntos suspensivos al final causando que muestre "Lu Kai...". ¿Cómo puedo evitar que la consulta agregue puntos suspensivos a nombres con menos de 10 letras?
1 Respuesta
Steven Parker
244 163 puntosEl código mostrado arriba siempre agrega los puntos suspensivos a la cadena. Necesitas codificarlo para que esto solo se haga cuando la longitud es mayor que 10. Aquí es donde UNION puede ser útil, combinado con filtrado de cláusula WHERE:
SELECT SUBSTR(name, 1, 10) || ... como Nombre FROM actores WHERE LONGITUD(name) > 10
UNION
SELECT name FROM actores WHERE LONGITUD(name) <= 10;