Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Agregar consecutivo sql server 2005

281 views
Skip to first unread message

Cristian

unread,
Sep 2, 2008, 1:33:15 PM9/2/08
to
Hola a todos!
como agrego (concateno) un consecutivo(no lo tengo) a un campo de una
consulta.

ejemplo:

cod descp suc prov
12 ttttt s1 t1
13 ttttt s2 t2
14 ttttt s3 t1
15 ttttt s1 t2

quede

cod descp suc prov
12 1ttttt s1 t1
13 2ttttt s2 t2
14 3ttttt s3 t1
15 4ttttt s1 t2

la serie 1 2 3 4 ... agregarla a cada uno
gracias

Alejandro Mesa

unread,
Sep 2, 2008, 1:59:01 PM9/2/08
to
Cristian,

Cual es el criterio a seguir para ordenar el conjunto y asignar el
consecutivo?

Trata:

create table t (
cod varchar(10) not null primary key,
descp varchar(50),
suc varchar(25),
prov varchar(25)
)
go

insert into t values('12', 'ttttt', 's1', 't1')
insert into t values('13', 'ttttt', 's2', 't2')
insert into t values('14', 'ttttt', 's3', 't1')
insert into t values('15', 'ttttt', 's1', 't2')
go

;with r_set
as
(
select
cod, descp, suc, prov,
row_number() over(order by cod) as rn
from
t
)
update r_set
set cod = cod + ltrim(rn)
go

select * from t
go

drop table t
go


AMB

Cristian

unread,
Sep 2, 2008, 2:37:40 PM9/2/08
to
agregarle o concatenarle un consecutivo a lo resultante de una consulta


tengo una consulta que trae una serie de registros y a esos agregarles un
consecutivo en el campo descrip

Alejandro Mesa

unread,
Sep 2, 2008, 9:56:00 PM9/2/08
to
Cristian,

Entiendo lo que quieres hacer, pero no indicas el criterio a usar para
asignar un consecutivo a una fila en especifico. Por ejemplo, ordenar las
filas por la columna [descp] y asignar el consecutivo.

create table t (
cod varchar(10) not null primary key,
descp varchar(50),
suc varchar(25),
prov varchar(25)
)
go

insert into t values('12', 'ttttt', 's1', 't1')
insert into t values('13', 'ttttt', 's2', 't2')
insert into t values('14', 'ttttt', 's3', 't1')
insert into t values('15', 'ttttt', 's1', 't2')
go

;with r_set
as
(
select
cod, descp, suc, prov,

row_number() over(order by [descp], [cod]) as rn


from
t
)
update r_set

set [descp] = ltrim(rn) + " - " + [descp]
go

select * from t
go

drop table t
go


AMB

Cristian

unread,
Sep 3, 2008, 11:03:00 AM9/3/08
to
Gracias, tu funciona funciona bien.


0 new messages