Array
(
)

pegar no select com union epenas o valor de um union

Pjava
   - 30 abr 2012

Tenho a seguinte query.
selec a from tabela union select b from tabela union select c from tabela
O resultado seria:
a|b|c
Tem como eu carregar no C#, usando oracleDatareader(), somente o valor de c? Se sim, como eu faria isso?

Joel Rodrigues
   - 01 mai 2012

Rapaz, o UNION é juntar registros e não campos, certo?
Nesse caso você terá como resultado, algo assim:
#Código

Registro A
Registro A
Registro A
Registro B
Registro B
Registro B
Registro C
Registro C
Registro C

Porém, sem distinção entre eles. Para distinguí-los, você pooderia, por exemplo, colocar mais um campo identificando o tipo do registro. Algo mais ou menos assim:
#Código
SELECT a, ´A´ FROM tabela_a
UNION
SELECT b, ´B´ FROM tabela_b
UNION
SELECT c, ´C´ FROM tabela_a

Com isso, o resultado passaria a ser:
#Código
Registro A, A
Registro A, A
Registro A, A
Registro B, B
Registro B, B
Registro B, B
Registro C, C
Registro C, C
Registro C, C

Aí você verificaria o valor do segundo campo e, caso fosse C, você faria o que precisasse.

Espero que ajude.
Boa sorte.