update de otra tabla

23/03/2005 - 21:05 por J Lara | Informe spam
Puedo hacer un update normal como:
update T1
set Campo1=datox where...

Esto es simple porque datox siempre es fijo, pero deseo
hacer un update del al Campo1 pero con algun dato que
cumpla una condicion (que inicie tal vez con x letra)de una
segunda tabla. algo parecido a esto:
update T1
set Campo1 where IN(Select Campo1 Like 'X%')

pero no me sale. se le puede indicar al set que lo que
debe considerar es un dato resultado de un select ??
o es de otra manera ??

Les agradesco de antemano su ayuda.

Saludos.
 

Leer las respuestas

#1 Alejandro Mesa
23/03/2005 - 21:21 | Informe spam
J Lara,

Se puede hacer de dos formas, pero ambas necesitan un criterio para
relacionar ambas tablas.

Ejemplo:

Supon que tenemos dos tablas t1 y t2 y que estas se relacionan por la
columna col1, si queremos actualizar la tabla t1, columna col2 con el valor
de la columna col2 en tabla t2 ti este valor cumple con que, por ejemplo,
t2.col2 like '%algo%', entonces:

update t1
set t1.col2 = t2.col2
from t1 inner join t2 on t1.col1 = t2.col2 and t2.col2 like '%algo%'


update t1
set col2 = (select col2 from t2 where t2.col1 = t1.col1 and t2.col2 like
'%algo%')
where exists (select * from t2 where t2.col1 = t1.col1 and t2.col2 like
'%algo%')


AMB

"J Lara" wrote:

Puedo hacer un update normal como:
update T1
set Campo1=datox where...

Esto es simple porque datox siempre es fijo, pero deseo
hacer un update del al Campo1 pero con algun dato que
cumpla una condicion (que inicie tal vez con x letra)de una
segunda tabla. algo parecido a esto:
update T1
set Campo1 where IN(Select Campo1 Like 'X%')

pero no me sale. se le puede indicar al set que lo que
debe considerar es un dato resultado de un select ??
o es de otra manera ??

Les agradesco de antemano su ayuda.

Saludos.

Preguntas similares