Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

titulo en SQL 2012

Estas en el tema de titulo en SQL 2012 en el foro de SQL Server en Foros del Web. hola tengo una cosa que quiero hacer ´para mostrar mis reportes en el titulo del reporte es un string que elige el usuario ejemplo.. LIBEA ...
  #1 (permalink)  
Antiguo 11/12/2013, 11:30
Avatar de elhombredeblanko  
Fecha de Ingreso: junio-2011
Ubicación: México Lindo y Querido
Mensajes: 212
Antigüedad: 13 años, 4 meses
Puntos: 2
titulo en SQL 2012

hola tengo una cosa que quiero hacer ´para mostrar mis reportes

en el titulo del reporte es un string que elige el usuario
ejemplo.. LIBEA DE ABARRORES
y quiero enviarlo en forma de titulo a SQL
asi
Linea De Abarrotes
es decir la primera letra de cada palabra ponerla en mayuscula
intente con substring y recorriendo la frase completa pero no me sale

alguien me puede ayudar :(
se os agradeceré
__________________
si siempre hay algo nuevo que aprender
  #2 (permalink)  
Antiguo 11/12/2013, 11:54
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: titulo en SQL 2012

aqui esta la funcion que necesitas:

Código SQL:
Ver original
  1. CREATE FUNCTION dbo.FN_GetCammelCase (@TABLE VARCHAR(MAX),@CHARACTER CHAR(1))
  2. RETURNS VARCHAR(MAX)
  3. AS
  4. BEGIN
  5.  
  6. DECLARE @VALUE VARCHAR(MAX)
  7. DECLARE @NEXT INT
  8. DECLARE @x INT
  9. DECLARE @new_table_name VARCHAR(MAX)
  10. DECLARE @first_letter VARCHAR(MAX)
  11. DECLARE @final VARCHAR(MAX)
  12.  
  13. SET @VALUE=''
  14. SET @new_table_name=''
  15. SET @first_letter=''
  16. SET @final=''
  17. SET @x=1
  18. while @x<=999999
  19. BEGIN
  20.  
  21.   IF (charindex(@CHARACTER,@TABLE,1))>=1       
  22.   BEGIN
  23.     SET @VALUE=SUBSTRING(@TABLE,1,charindex(@CHARACTER,@TABLE,1)-1)
  24.     SET @first_letter=UPPER(SUBSTRING(@VALUE,1,1))
  25.     SET @new_table_name=LOWER(SUBSTRING(@VALUE,2,len(@VALUE))) 
  26.     SET @new_table_name=@first_letter + @new_table_name
  27.     SET @NEXT=len(@new_table_name)+1
  28.     SET @final=@final+@new_table_name + @CHARACTER     
  29.     SET @TABLE=SUBSTRING(@TABLE,@NEXT+1,len(@TABLE))   
  30.   END
  31.   ELSE
  32.   BEGIN
  33.     SET @first_letter=UPPER(SUBSTRING(@TABLE,1,1)) 
  34.     SET @new_table_name=LOWER(SUBSTRING(@TABLE,2,len(@TABLE))) 
  35.     SET @new_table_name=@first_letter + @new_table_name
  36.     SET @NEXT=len(@new_table_name)+1
  37.     SET @final=@final+@new_table_name + @CHARACTER
  38.     SET @x=999999
  39.   END
  40.  
  41. SET @x=@x+1
  42. END
  43. RETURN @final
  44.    
  45. END
  46.  
  47. DECLARE @valor VARCHAR(MAX)
  48. SELECT @valor=dbo.FN_GetCammelCase('CREDIT CARD DELINQUENCY mis ojos son azules y que pedro aqui mando yo',' ')
  49. print @valor

como funciona la funcion(valgame la rebusnancia) recibe de parametro la cadena a convertir en CamelCase :P y el caracter que va a server de separacion(por ejemplo para cadenas como CREDIT_CARD_2020 donde el caracter de separacion es _)

pruebala y cuentas como te fue :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 11/12/2013, 13:02
Avatar de elhombredeblanko  
Fecha de Ingreso: junio-2011
Ubicación: México Lindo y Querido
Mensajes: 212
Antigüedad: 13 años, 4 meses
Puntos: 2
Respuesta: titulo en SQL 2012

Gracias amigos !!!!!!!!!!!!!!!!!!!!!!!
__________________
si siempre hay algo nuevo que aprender

Etiquetas: 2012, sql, titulo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 08:04.