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: