Na questão abaixo, considere as tabelas de banco de dados T, TX e DUAL, exibidas com suas respectivas instâncias a seguir.
T
| sequencia | caracteristica |
| 1 | 23987 |
| 2 | 9845 |
| 3 | NULL |
| 4 | 40983 |
| 6 | 48750 |
| 7 | NULL |
| 8 | NULL |
| 10 | 48750 |
| 12 | 48750 |
TX
| sequencia |
caracteristica |
| 2 | 9845 |
| 3 | 998034 |
| 4 | 50932 |
| 5 | 24390 |
| 6 | 48750 |
| 6 | 50296 |
| 7 | NULL |
| 8 | 998746 |
| 9 | 32746 |
| 9 | NULL |
| 9 | 22798 |
DUAL
| x |
| NULL |
Nas colunas das três tabelas, o tipo é o de número inteiro. Em todos os comandos SQL, considera-se o NULL como um valor desconhecido (unknown).
Considere que é preciso atualizar os dados da tabela T a partir dos dados da tabela TX, ambas definidas anteriormente. A consolidação é feita por meio da alteração na tabela T a partir de registros de TX.
O comando SQL utilizado nessa atualização é exibido a seguir.
update T
set caracteristica =
(select max(caracteristica) x from TX tx
where tx.sequencia = t.sequencia
and not (tx.caracteristica is null))
where
( exists
(select * from TX tx
where tx.sequencia = t.sequencia
and not (tx.caracteristica is null))
and
( t.caracteristica is null
or
t.caracteristica <
(select max(caracteristica) x
from TX tx
where tx.sequencia = t.sequencia
and not (tx.caracteristica is null))
)
)
O número de registros da tabela T afetados pela execução do comando SQL acima é: