Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

¿se puede utilizar el valor de una columna virtual en la misma consulta en sql?

Estas en el tema de ¿se puede utilizar el valor de una columna virtual en la misma consulta en sql? en el foro de Oracle en Foros del Web. Buenos días, Utilizo Oracle 9 y me gustaría saber si se puede utilizar el valor de una columna virtual en la misma consulta en sql. ...
  #1 (permalink)  
Antiguo 16/12/2008, 09:50
 
Fecha de Ingreso: abril-2005
Mensajes: 13
Antigüedad: 16 años
Puntos: 0
Pregunta ¿se puede utilizar el valor de una columna virtual en la misma consulta en sql?

Buenos días,
Utilizo Oracle 9 y me gustaría saber si se puede utilizar el valor de una columna virtual en la misma consulta en sql.
Desearía hacer algo así como::
Código PHP:
SELECT ROW_NUMBER() OVER(ORDER BY IDTEXTO) as virtual
       
COLUMNA2
FROM TABLA WHERE virtual
>
En este ejemplo la columna 'virtual' no me la acepta,
¿es esto posible o es necesario realizar otra consulta?? ¿existe algún comando especial??
Muchas gracias a quien pueda darme una pista.
  #2 (permalink)  
Antiguo 16/12/2008, 21:52
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 17 años, 2 meses
Puntos: 7
Respuesta: ¿se puede utilizar el valor de una columna virtual en la misma consulta en

bueno para empezar aclaremos que el termino "columna virtual" ya se utiliza a partir de la version 11g para una columna con el resultado de otras, y respecto a tu problema no sera cuando haces el

WHERE virtual>2

si no mal recuerdo no puedes utilizar el alias de la columna asi, deberia de ser

WHERE OVER(ORDER BY IDTEXTO) > 2

eso suponiendo que las funciones ROW_NUMBER() y OVER() existan en oracle y no requieran separarlas por coma
__________________
Blogzote.com :-) Mi blog
  #3 (permalink)  
Antiguo 17/12/2008, 02:30
 
Fecha de Ingreso: abril-2005
Mensajes: 13
Antigüedad: 16 años
Puntos: 0
Pregunta Respuesta: ¿se puede utilizar el valor de una columna virtual en la misma consulta en

Muchas gracias por tu respuesta, la consulta siguiente
Código PHP:
SELECT ROW_NUMBER() OVER(ORDER BY COLUMNA) as columna_virtualOTRA_COLUMNA
FROM TABLA 
sí me funciona sin necesidad de utilizar comas y me devuelve en la columna_virtual
un índice de todos los registros, pero cuando utilizo
Código PHP:
SELECT ROW_NUMBER() OVER(ORDER BY COLUMNA) as columna_virtualOTRA_COLUMNA
FROM TABLA WHERE OVER
(ORDER BY COLUMNA)>
no me funciona dándome el error "falta una expresión"
también he probado a añadirle ROW_NUMBER() antes de OVER, ¿cómo se podría hacer?
muchísimas gracias
  #4 (permalink)  
Antiguo 18/12/2008, 08:29
 
Fecha de Ingreso: marzo-2008
Ubicación: Euskadi
Mensajes: 64
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: ¿se puede utilizar el valor de una columna virtual en la misma consulta en

Hola nuriagata,

la única manera que se me ocurre es mediante una subconsulta (no tiene nada de malo, el coste no va aumentar porque a tu tabla solamente se accede una vez). En tu caso sería:

Código:
SELECT columna_virtual, OTRA_COLUMNA FROM
(
SELECT ROW_NUMBER() OVER(ORDER BY COLUMNA) as columna_virtual, OTRA_COLUMNA 
FROM TABLA
)
WHERE columna_virtual > 3
Un saludo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:43.