NVL entre las subconsultas en HiveQL y Talend -- hive campo con hiveql campo con talend campo con nvl camp Relacionados El problema

NVL between subqueries in HIVEQL and Talend


0
vote

problema

Español

¿Es posible llamar a NVL cuando hay subconsultas entre ellos? El código está abajo.

       NVL(             (             SELECT             MIN(DATE_TIME)AS EFFECTIVE_DATE             FROM TEMP.DM_ZEXPIDA_FICANT Z             WHERE REGEXP_EXTRACT(CURR_HC,'([^;]+)',0)  = TEMP.AB_FICANT.CURR_CODE             AND Z.DATE_TIME                            > TEMP.AB_FICANT.DATE_TIME             ),             (             SELECT             MIN(DATE_TIME)AS EFFECTIVE_DATE             FROM TEMP.DM_ZEXPIDB_FICANT Z             WHERE CURR_CODE = TEMP.AB_FICANT.CURR_CODE             AND Z.DATE_TIME > TEMP.AB_FICANT.DATE_TIME             )      )AS EXPI_DATE,   

Como sabemos que el sistema nos restringe para hacer selecto selecto Seleccionar: https: //cwiki.apache. Org / Confluence / Pantalla / Hive / Subqueries + in + Select # Space-Menu-Link-Content

Además, solo podemos usar el caso cuando el formulario sea así:

  CASE WHEN rr IS NULL THEN kk ELSE rr  END AS EXPI_DATE   

¿Qué tipo de formulario tengo que tratar de suceder esto?

Original en ingles

Is it possible to call nvl when there are subqueries between them? Code is below.

     NVL(             (             SELECT             MIN(DATE_TIME)AS EFFECTIVE_DATE             FROM TEMP.DM_ZEXPIDA_FICANT Z             WHERE REGEXP_EXTRACT(CURR_HC,'([^;]+)',0)  = TEMP.AB_FICANT.CURR_CODE             AND Z.DATE_TIME                            > TEMP.AB_FICANT.DATE_TIME             ),             (             SELECT             MIN(DATE_TIME)AS EFFECTIVE_DATE             FROM TEMP.DM_ZEXPIDB_FICANT Z             WHERE CURR_CODE = TEMP.AB_FICANT.CURR_CODE             AND Z.DATE_TIME > TEMP.AB_FICANT.DATE_TIME             )      )AS EXPI_DATE, 

As we know that the system restrict us for make select inside select: https://cwiki.apache.org/confluence/display/Hive/Subqueries+in+SELECT#space-menu-link-content

Also, we can only use CASE WHEN when the form is like this :

CASE WHEN rr IS NULL THEN kk ELSE rr  END AS EXPI_DATE 

What kind of form I have to try to succeed this?

           
     
     

Lista de respuestas

-1
 
vote

Suponiendo temp.ab_ficant.key_col como llave en la tabla de conducción que creé por debajo de SQL. Ambas subconsultas se convierten a la partida a la izquierda. Ahora, si no tiene una columna clave, puede unirse en alguna columna que es única en AB_FICIANT.

  SELECT NVL( A.EFFECTIVE_DATE, B.EFFECTIVE_DATE) AS EXPI_DATE     FROM TEMP.AB_FICANT DRIV     LEFT JOIN (             SELECT             MIN(DATE_TIME)AS EFFECTIVE_DATE, INNER_DRIV.KEY_COL             FROM TEMP.DM_ZEXPIDA_FICANT Z, TEMP.AB_FICANT INNER_DRIV             WHERE REGEXP_EXTRACT(Z.CURR_HC,'([^;]+)',0)  = INNER_DRIV.CURR_CODE             AND Z.DATE_TIME                            > INNER_DRIV.DATE_TIME             GROUP BY INNER_DRIV.KEY_COL             ) A ON A.KEY_COL=DRIV.KEY_COL     LEFT JOIN (             SELECT             MIN(DATE_TIME)AS EFFECTIVE_DATE, INNER_DRIV.KEY_COL             FROM TEMP.DM_ZEXPIDB_FICANT Z, TEMP.AB_FICANT INNER_DRIV             WHERE CURR_CODE = INNER_DRIV.CURR_CODE             AND Z.DATE_TIME > INNER_DRIV.DATE_TIME             GROUP BY INNER_DRIV.KEY_COL             ) B ON  B.KEY_COL=DRIV.KEY_COL   
 

Assuming TEMP.AB_FICANT.KEY_COL as KEY in the driving table i created below SQL. Both subqueries are converted to left join. Now, if you do not have a key column, you can join on some column which is unique in AB_FICANT.

SELECT NVL( A.EFFECTIVE_DATE, B.EFFECTIVE_DATE) AS EXPI_DATE     FROM TEMP.AB_FICANT DRIV     LEFT JOIN (             SELECT             MIN(DATE_TIME)AS EFFECTIVE_DATE, INNER_DRIV.KEY_COL             FROM TEMP.DM_ZEXPIDA_FICANT Z, TEMP.AB_FICANT INNER_DRIV             WHERE REGEXP_EXTRACT(Z.CURR_HC,'([^;]+)',0)  = INNER_DRIV.CURR_CODE             AND Z.DATE_TIME                            > INNER_DRIV.DATE_TIME             GROUP BY INNER_DRIV.KEY_COL             ) A ON A.KEY_COL=DRIV.KEY_COL     LEFT JOIN (             SELECT             MIN(DATE_TIME)AS EFFECTIVE_DATE, INNER_DRIV.KEY_COL             FROM TEMP.DM_ZEXPIDB_FICANT Z, TEMP.AB_FICANT INNER_DRIV             WHERE CURR_CODE = INNER_DRIV.CURR_CODE             AND Z.DATE_TIME > INNER_DRIV.DATE_TIME             GROUP BY INNER_DRIV.KEY_COL             ) B ON  B.KEY_COL=DRIV.KEY_COL 
 
 
         
         

Relacionados problema

2  HIVEQL Únete a la consulta - NVL no funciona en donde la cláusula  ( Hiveql join query nvl not working in where clause ) 
Tengo una consulta de HiveQL que se ve a continuación: create table JOINED as select TABLEA.* from TABLEA join TABLEB on TABLEA.key=TABLEB.key where nvl(TA...

4  Función NVL de Oracle no permite el segundo parámetro como DateTime  ( Oracle nvl function not allows second parameter as datetime ) 
select nvl(trunc(null),trunc(sysdate)) from dual; Mientras se ejecuta por encima de la consulta, estoy obteniendo un error siguiente ORA-00932: incons...

2  Solución alternativa para el NVL desaparecido () en JPA 1.0  ( Workaround for the missing nvl in jpa 1 0 ) 
¿Hay una solución para la función NVL () que falta en JPA 1.0 (Eclipselink 1.1.x)? Gracias y mejores saludos ...

0  Cómo atrapar valles nulos y mostrar comentarios  ( How to catch null vales and display comment ) 
Tengo consulta bascic: select col1, nvl(col1,to_number(null)) from table1 where colx = :new actualización baiscly, Durante la Subida, estoy comprob...

212  Diferencias de Oracle entre NVL y Coalesce  ( Oracle differences between nvl and coalesce ) 
¿Hay diferencias no obvias entre NVL y Coalesce en Oracle? Las diferencias obvias son que los coalescen devolverán el primer elemento no nulo en su lista de...

2  NVL no es un nombre de función incorporado reconocido  ( Nvl is not a recognized built in function name ) 
Estoy ejecutando por debajo de la consulta en SQL Server, pero obteniendo un error: //objList structure is like (uuid,cn_name,gender,..) vertex = tx.getVer...

0  Necesidad de consultar datos de una tabla mediante la función NVL  ( Need to query data from a table using nvl function ) 
Tengo una tabla que tiene varias columnas. Diga, las columnas son C1, C2, C3 y C4. C1 contains daytime, C2 contains names, C3 is the numeric values and C...

0  ¿Cuál de las funciones generales puede cambiar la implicación del tipo de datos? (NVL, NVL2, NULLIF, CUENTOSCE, DECODE)  ( Which of general functions can impliclty change the data type nvl nvl2 nulli ) 
Estoy tratando de encontrar respuesta a esta pregunta mucho tiempo. En la documentación ninguna respuesta integral. ¿Quién puede explicarme esto más clara y f...

0  Cómo usar la función Decodish de Oracle en donde la cláusula  ( How to use oracles decode function in where clause ) 
Tengo una consulta con pocos criterios de filtro, uno de ellos es llegar a la consulta como parámetro entero. Quiero usar este filtro solo si este entero es &...

-1  La función NVL de Oracle no funciona como se esperaba  ( Oracle nvl function not working as expected ) 
Quiero convertir los valores nulos en ' ' . Pero cuando uso este código tengo valores nulos como 'null': SELECT NVL(column_a, ' ') FROM table_a ...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos