Cómo convertir mayúsculas en tipo Título?

22/08/2006 - 09:29 por Carlos A. | Informe spam
Hola a todos.
No sé si existe una función en SQL, pero en Excel existe una función para
convertir las máyúsculas en tipo título, por ejemplo
JUAN CARLOS ANDRADE --> Juan Carlos Andrade
AVENIDA DE LA INDEPENDENCIA --> Avenida De La Independencia
(Siempre la primera sólo en mayúscula)

Cómo puedo hacer para convertir una tabla con datos en mayúsculas en este
tipo de cadena?
Muchas gracias.

Preguntas similare

Leer las respuestas

#1 Miguel Egea
22/08/2006 - 13:54 | Informe spam
Creo que puede funcionar bien aunque el orden alguna vez en circunstancias
muy extrañas podría ser alterado al menos teóricamente.

Lo voy a publicar en PortalSQL. Se basa en parte en un script del gran Itzik
Ben Gan,

drop table nums

go

create table nums (id int not null primary key)

go

with myCte(id) as

(

select 1 id

union all

select id+1 id from MyCte where id<10000

)

insert into nums

select id from mycte option (maxrecursion 0);

go

drop function dbo.ToTitle

go

create function dbo.ToTitle(@Param as varchar(max))

returns varchar(max)

as

begin

Declare @v as varchar(max)

set @v=''

select @v=@v+UPPER(left(Texto,1))+lower(substring(Texto,2,len(Texto)))+' '
from

(

select id,substring(texto,id,patindex('% %',substring(texto+'
',id+1,len(texto)))) texto from

(select @param texto) a

inner join nums n

on substring(' '+ texto,id,1)=''

and id<len(texto)

) a

return @v

end

go

go

select dbo.ToTitle('en un lugar de la mancha de cuyo nombre no quiero
acordarme NO HA MUCHO QUE VIVIA UN HIDALGO')






"Carlos A." wrote in message
news:
Hola a todos.
No sé si existe una función en SQL, pero en Excel existe una función para
convertir las máyúsculas en tipo título, por ejemplo
JUAN CARLOS ANDRADE --> Juan Carlos Andrade
AVENIDA DE LA INDEPENDENCIA --> Avenida De La Independencia
(Siempre la primera sólo en mayúscula)

Cómo puedo hacer para convertir una tabla con datos en mayúsculas en este
tipo de cadena?
Muchas gracias.

Respuesta Responder a este mensaje
#2 Minothauro
22/08/2006 - 15:25 | Informe spam
Tendrias que crear una funcion

create function convletra (@x varchar(30))
returns varchar(30)
begin
declare @longitud int
declare @aux varchar(1)
declare @contador int
declare @resultado varchar(30)
set @longitud=len(@x)
set @aux=''
set @contador=2
set @resultado=upper(substring(@x,1,1))
while @longitud >= @contador
begin
set @resultado=@resultado+substring(@x,@contador,1)
if substring(@x,@contador,1)=' '
begin
set @contador=@contador+1
set @resultado = @resultado+upper(substring(@x,@contador,1))
end
set @contador=@contador+1
end
return @resultado
end


Espero que te sirva

Carlos A. wrote:
Hola a todos.
No sé si existe una función en SQL, pero en Excel existe una función para
convertir las máyúsculas en tipo título, por ejemplo
JUAN CARLOS ANDRADE --> Juan Carlos Andrade
AVENIDA DE LA INDEPENDENCIA --> Avenida De La Independencia
(Siempre la primera sólo en mayúscula)

Cómo puedo hacer para convertir una tabla con datos en mayúsculas en este
tipo de cadena?
Muchas gracias.
Respuesta Responder a este mensaje
#3 Minothauro
22/08/2006 - 15:30 | Informe spam
Tendrias que crear una funcion

create function convletra (@x varchar(30))
returns varchar(30)
begin
declare @longitud int
declare @contador int
declare @resultado varchar(30)
set @longitud=len(@x)
set @contador=2
set @resultado=upper(substring(@x,1,1))
while @longitud >= @contador
begin
set @resultado=@resultado+lower(substring(@x,@contador,1))
if substring(@x,@contador,1)=' '
begin
set @contador=@contador+1
set @resultado = @resultado+upper(substring(@x,@contador,1))
end
set @contador=@contador+1
end
return @resultado
end


Espero que te sirva

Carlos A. wrote:
Hola a todos.
No sé si existe una función en SQL, pero en Excel existe una función para
convertir las máyúsculas en tipo título, por ejemplo
JUAN CARLOS ANDRADE --> Juan Carlos Andrade
AVENIDA DE LA INDEPENDENCIA --> Avenida De La Independencia
(Siempre la primera sólo en mayúscula)

Cómo puedo hacer para convertir una tabla con datos en mayúsculas en este
tipo de cadena?
Muchas gracias.
Respuesta Responder a este mensaje
#4 Minothauro
22/08/2006 - 15:32 | Informe spam
Esta es la version 2.0 jajaja me olvide de modificar algunas cosas

create function convletra (@x varchar(30))
returns varchar(30)
begin
declare @longitud int
declare @contador int
declare @resultado varchar(30)
set @longitud=len(@x)
set @contador=2
set @resultado=upper(substring(@x,1,1))
while @longitud >= @contador
begin
set @resultado=@resultado+lower(substring(@x,@contador,1))
if substring(@x,@contador,1)=' '
begin
set @contador=@contador+1
set @resultado = @resultado+upper(substring(@x,@contador,1))
end
set @contador=@contador+1
end
return @resultado
end


Minothauro wrote:
Tendrias que crear una funcion

create function convletra (@x varchar(30))
returns varchar(30)
begin
declare @longitud int
declare @aux varchar(1)
declare @contador int
declare @resultado varchar(30)
set @longitud=len(@x)
set @aux=''
set @contador=2
set @resultado=upper(substring(@x,1,1))
while @longitud >= @contador
begin
set @resultado=@resultado+substring(@x,@contador,1)
if substring(@x,@contador,1)=' '
begin
set @contador=@contador+1
set @resultado = @resultado+upper(substring(@x,@contador,1))
end
set @contador=@contador+1
end
return @resultado
end


Espero que te sirva

Carlos A. wrote:
> Hola a todos.
> No sé si existe una función en SQL, pero en Excel existe una función para
> convertir las máyúsculas en tipo título, por ejemplo
> JUAN CARLOS ANDRADE --> Juan Carlos Andrade
> AVENIDA DE LA INDEPENDENCIA --> Avenida De La Independencia
> (Siempre la primera sólo en mayúscula)
>
> Cómo puedo hacer para convertir una tabla con datos en mayúsculas en este
> tipo de cadena?
> Muchas gracias.
Respuesta Responder a este mensaje
#5 Miguel Egea
22/08/2006 - 18:08 | Informe spam
Carlos, publiqué en portalsql la explicación detallada de como hice esa
función, es cierto que puede hacerse con un cursor, o un bucle como lo ha
implementado Minothauro, pero yo soy de la brigada anticursores :) así que
ahí llevas la explicacion por si le viene bien a alguien.

http://www.configuracionesintegrale...articulo26

Saludos
Miguel Egea
"Miguel Egea" wrote in message
news:%
Creo que puede funcionar bien aunque el orden alguna vez en circunstancias
muy extrañas podría ser alterado al menos teóricamente.

Lo voy a publicar en PortalSQL. Se basa en parte en un script del gran
Itzik Ben Gan,

drop table nums

go

create table nums (id int not null primary key)

go

with myCte(id) as

(

select 1 id

union all

select id+1 id from MyCte where id<10000

)

insert into nums

select id from mycte option (maxrecursion 0);

go

drop function dbo.ToTitle

go

create function dbo.ToTitle(@Param as varchar(max))

returns varchar(max)

as

begin

Declare @v as varchar(max)

set @v=''

select @v=@v+UPPER(left(Texto,1))+lower(substring(Texto,2,len(Texto)))+' '
from

(

select id,substring(texto,id,patindex('% %',substring(texto+'
',id+1,len(texto)))) texto from

(select @param texto) a

inner join nums n

on substring(' '+ texto,id,1)=''

and id<len(texto)

) a

return @v

end

go

go

select dbo.ToTitle('en un lugar de la mancha de cuyo nombre no quiero
acordarme NO HA MUCHO QUE VIVIA UN HIDALGO')






"Carlos A." wrote in message
news:
Hola a todos.
No sé si existe una función en SQL, pero en Excel existe una función para
convertir las máyúsculas en tipo título, por ejemplo
JUAN CARLOS ANDRADE --> Juan Carlos Andrade
AVENIDA DE LA INDEPENDENCIA --> Avenida De La Independencia
(Siempre la primera sólo en mayúscula)

Cómo puedo hacer para convertir una tabla con datos en mayúsculas en este
tipo de cadena?
Muchas gracias.





Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida