SAP HANA Union y Union All: OperaEjemplos de tor

โšก Resumen inteligente

SAP HANA OperaTor realiza cรกlculos, comparaciones de valores o asignaciones dentro de SQL. Existen seis familias: operadores unarios y binarios, aritmรฉticos, de cadena, de comparaciรณn, lรณgicos y de conjuntos, como UNION e INTERSECT.

  • โž• Unario y binario: Un operador unario requiere un operando y un operador binario requiere dos.
  • ๐Ÿงฎ Aritmรฉtica: Adiciรณn, subtracLas operaciones de suma, multiplicaciรณn y divisiรณn funcionan con operandos numรฉricos.
  • ๐Ÿ”— Concatenaciรณn de cadenas: Dos barras verticales unen cadenas, expresiones o constantes en un รบnico valor.
  • ๐Ÿ‡ง๐Ÿ‡ท Comparaciรณn: Igual, mayor, menor y sus combinaciones devuelven un valor de verdad para filtrar.
  • ๐Ÿ”€ Lรณgico: Las condiciones AND, OR y NOT se combinan dentro de una clรกusula WHERE.
  • ๐Ÿงฉ Establecer Operatores: UNION elimina los duplicados, UNION ALL los conserva, INTERSECT devuelve las filas comunes, EXCEPT subtracTs
  • ๐Ÿ“Š Ejemplo trabajado: Dos tablas que comparten valores demuestran la diferente salida de cada operador de conjunto.

SAP Operadores de HANA UNION y UNION ALL

SAP HANA OperaTor se puede utilizar para cรกlculos, comparaciรณn de valores o para asignar valores.

SAP HANA Operatoros

  • Unario y binario Operator
  • Aritmรฉtica Operator
  • Cordรณn Operatoros
  • Comparaciรณn Operator
  • lรณgico Operator
  • Establecer Operator

Cada operador devuelve un valor, por lo que pueden anidarse unos dentro de otros. El orden en que se evalรบan viene determinado por la precedencia, que se explica despuรฉs de cada familia de operadores.

Unario y binario Operator

Operator Operadisrupciรณn Mareas Ideales para Lecciones
Unario Un operador unario se aplica a un operando Operador de suma unaria (+) Operador de negaciรณn unaria (-) Negaciรณn lรณgica (NOT)
Binario Un binario OperaTor se aplica a dos operandos Operadores multiplicativos ( *, / ) Operadores aditivos ( +,- ) Operadores de comparaciรณn ( =,!=,<,>,<=,>=) Operadores lรณgicos ( AND, OR )

Aritmรฉtica Operator

  • suma (+)
  • Subtracciรณn (-)
  • Multiplicaciรณn (*)
  • Divisiรณn ( / )

Cordรณn Operator

Una cuerda Operator es un operador de concatenaciรณn que combina dos elementos, como cadenas, expresiones o constantes, en uno.

Se utilizan dos barras verticales โ€œ||โ€ como operador de concatenaciรณn.

Comparaciรณn Operator

El operador de comparaciรณn se utiliza para comparar dos operandos. A continuaciรณn se muestra una lista de operadores de comparaciรณn. Operacolina-

  • Igual a ( = )
  • Mayor que ( > )
  • Less Que ( < )
  • Mayor o igual que ( >= )
  • Less que o igual a ( <= )
  • No igual (!=, <>)

lรณgico Operator

El operador lรณgico se utiliza en los criterios de bรบsqueda.

P.ej. DONDE condiciรณn1 Y/O/NO condiciรณn2

A continuaciรณn se muestra una lista de operadores lรณgicos:

  • Y โ€“ (por ejemplo, DONDE condiciรณn1 Y condiciรณn2)
    Si tanto la Condiciรณn1 como la Condiciรณn2 son verdaderas, entonces la condiciรณn Combinar es verdadera; de lo contrario, serรก falsa.
  • O โ€“ (por ejemplo, DONDE condiciรณn1 O condiciรณn2)
    Si la Condiciรณn1 O la Condiciรณn2 es verdadera, entonces la condiciรณn combinada es verdadera o falsa si ambas condiciones son falsas.
  • NO โ€“ (por ejemplo, condiciรณn DONDE NO)
    La condiciรณn NO es verdadera si la condiciรณn es falsa.

Establecer Operatoros

  • UNIร“N: Combina dos o mรกs sentencias o consultas SELECT sin duplicados.
  • UNION ALL: combina dos o mรกs sentencias o consultas SELECT, incluyendo todas las filas duplicadas.
  • INTERSECT: combina dos o mรกs sentencias o consultas SELECT y devuelve todas las filas comunes.
  • EXCEPTO: toma el resultado de la primera consulta y elimina la fila seleccionada por la segunda consulta.

P.ej Tengo dos tablas (tabla1, tabla2) en las que algunos valores son comunes.

Establecer  Operatores en SAP HANA

Usamos el operador Conjunto (Uniรณn, Uniรณn ALL, Intersecciรณn, excepto) para estas dos tablas en SQL como a continuaciรณn -

Crear tabla 1: secuencia de comandos SQL

CREATE COLUMN TABLE DHK_SCHEMA.TABLE1
( ELEMENT CHAR(1),
  PRIMARY KEY (ELEMENT)
);
INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('P');
INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('Q');
INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('R');
INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('S');
INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('T');

Crear tabla 2: secuencia de comandos SQL

CREATE COLUMN TABLE DHK_SCHEMA.TABLE2
( ELEMENT CHAR(1),
  PRIMARY KEY (ELEMENT)
);
INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('S');
INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('T');
INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('U');
INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('V');
INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('W');

Nota: : Aquรญ "DHK_SCHEMA" es un nombre de esquema, el usuario puede cambiar el nombre del esquema en SQL en consecuencia.

Establecer Operator Los ejemplos son los siguientes

Operator consulta SQL Resultado Usos
UNIร“N SELECT *
DESDE
(
SELECT ELEMENTO
DESDE DHK_SCHEMA.TABLE1
UNIร“N
SELECT ELEMENTO
DESDE DHK_SCHEMA.TABLE2
)
ORDEN POR ELEMENTO;

Salida del operador UNION set

Combina el resultado de dos o mรกs consultas sin duplicados.
UNION TODO SELECT *
DESDE
(
SELECT ELEMENTO
DESDE DHK_SCHEMA.TABLE1
UNION TODO
SELECT ELEMENTO
DESDE DHK_SCHEMA.TABLE2
)
ORDEN POR ELEMENTO;

UNION ALL establece la salida del operador

Combine el resultado de dos o mรกs consultas con todos los duplicados.
INTERSECARSE SELECT *
DESDE
(
SELECT ELEMENTO
DESDE DHK_SCHEMA.TABLE1
INTERSECARSE
SELECT ELEMENTO
DESDE DHK_SCHEMA.TABLE2
)
ORDEN POR ELEMENTO;

Salida del operador de conjunto INTERSECT

Combine el resultado de dos o mรกs consultas con todas las filas comunes.
EXCEPTO SELECT *
DESDE
(
SELECT ELEMENTO
DESDE DHK_SCHEMA.TABLE1
EXCEPTO
SELECT ELEMENTO
DESDE DHK_SCHEMA.TABLE2
)
ORDEN POR ELEMENTO;

EXCEPTO establecer salida del operador

Toma el resultado de la primera consulta y elimina la fila seleccionada por la segunda consulta.

Establecer OperaReglas y requisitos

Los operadores de conjuntos parecen sencillos, pero rechazan las consultas con facilidad, ya que comparan conjuntos de resultados completos en lugar de valores individuales. Se rigen por cuatro reglas.

  1. El nรบmero de columnas debe coincidir. Ambas sentencias SELECT deben devolver el mismo nรบmero de columnas. Si no coinciden, la operaciรณn falla inmediatamente y el mensaje indica la posiciรณn en lugar de la columna.
  2. Los tipos de datos deben ser compatibles. La primera columna de la primera consulta se compara con la primera columna de la segunda, y asรญ sucesivamente por posiciรณn, no por nombre. Los tipos numรฉricos compatibles se convierten automรกticamente; una columna de caracteres que se compara con una fecha no se convierte.
  3. Los nombres de las columnas provienen de la primera consulta. En la salida se ignora la nomenclatura que la segunda instrucciรณn utiliza para referirse a sus columnas, lo que sorprende a cualquiera que lea el resultado de una operaciรณn UNION por primera vez.
  4. La clรกusula ORDER BY se aplica a todo el resultado. Pertenece al final, despuรฉs del รบltimo SELECT, y es por eso que los ejemplos anteriores envuelven la uniรณn en un SELECT externo.

La diferencia de rendimiento entre UNION y UNION ALL es digna de menciรณn. UNION debe ordenar o aplicar una funciรณn hash al resultado combinado para eliminar duplicados, mientras que UNION ALL simplemente agrega. Cuando los duplicados son imposibles o aceptables, UNION ALL es significativamente mรกs rรกpido en tablas grandes. Las definiciones de columna utilizadas en estas tablas se tratan en SAP Tipos de datos de HANA.

OperaPrecedencia en SAP HANA-SQL

Cuando varios operadores aparecen en una misma expresiรณn, la precedencia determina cuรกl se evalรบa primero. Un error en este criterio genera una consulta que se ejecuta perfectamente pero devuelve filas incorrectas, lo cual es mucho mรกs peligroso que un error de sintaxis.

Pedido de telecomunicaciones Categorรญa
1 () Los parรฉntesis siempre se evalรบan primero.
2 + โ€“ (operando รบnico) Suma y negaciรณn unarias
3 * / Multiplicaciรณn y divisiรณn
4 + โ€“ || Adiciรณn, subtracciรณn, concatenaciรณn
5 = != < > <= >= Comparaciรณn
6 Negaciรณn lรณgica
7 Y Conjunciรณn lรณgica
8 OR Disyunciรณn lรณgica

La trampa clรกsica se encuentra en las filas 7 y 8. Debido a que AND se une mรกs fuertemente que OR, la condiciรณn DONDE regiรณn = 'ESTE' O regiรณn = 'OESTE' Y estado = 'ABIERTO' se lee como ESTE, o bien OESTE que estรฉ abiertoSe devuelven todas las filas orientales independientemente de su estado. Aรฑadir parรฉntesis alrededor de las dos pruebas de regiรณn lo soluciona.

๐Ÿ’ก Consejo: Escribe parรฉntesis alrededor de cada condiciรณn combinada AND y OR, incluso cuando la precedencia ya dรฉ el resultado deseado. La consulta se vuelve autodocumentada y se conserva a pesar de las ediciones posteriores de otro desarrollador.

La sintaxis de las declaraciones cotidianas se cubre en el SAP HANA-SQL tutorial y la plataforma mรกs amplia en el SAP Tutorial de HANA .

Preguntas Frecuentes

UNION ALL. Simplemente agrega los resultados, mientras que UNION debe eliminar los duplicados. Use UNION ALL cuando los duplicados sean imposibles o aceptables en el resultado.

Sรญ, SAP HANA convierte el nรบmero implรญcitamente. Envolturaping Utilizar TO_VARCHAR sigue siendo una mejor prรกctica, porque asรญ el formato permanece bajo tu control en lugar de usar el formato predeterminado de la sesiรณn.

Sรญ. La IA reformula una condiciรณn mixta AND y OR en lenguaje sencillo, lo que revela inmediatamente si el suelo...ping coincide con la intenciรณn y luego propone los parรฉntesis que la corrigen.

Sรญ. Las clรกusulas INTERSECT y EXCEPT a menudo se pueden reescribir como una uniรณn interna o una clรกusula NOT EXISTS, lo que puede ofrecer un mejor rendimiento. Compare los planes de ejecuciรณn antes de adoptar la reescritura.

Comparar cualquier valor con NULL devuelve desconocido en lugar de verdadero o falso, por lo que la fila se filtra. Utilice IS NULL e IS NOT NULL en lugar del operador de igualdad.

Resumir este post con: