@CASE

Utilice la función @CASE para seleccionar un valor en función de una serie de pruebas de valores. No hay límite en el número de casos que puede probar con @CASE. Si el número de casos es grande, enumere primero las condiciones más frecuentes para obtener el mejor rendimiento.

Para esta función, Oracle GoldenGate soporta el uso de una secuencia de escape para representar caracteres en una columna de cadena en Unicode o en la codificación de caracteres nativa de los sistemas operativos Microsoft Windows, UNIX y Linux. La columna de destino debe ser un tipo de dato SQL Unicode si se proporciona algún argumento como Unicode.

Esta función no soporta los tipos de dato NCHAR o NVARCHAR.

Sintaxis

@CASE (<value>, <test_value1>, <test_result1>
[, <test_value2>, <test_result2>] [, ...]
[, <default_result>]

<value>

Un valor para probar, por ejemplo, un nombre de columna. Encerrar literales entre comillas simples.

<test_value>

Un resultado válido para <value>. Encerrar literales entre comillas simples.

<test_result>

Valor que se devolverá en función del valor de <test_value>. Encerrar literales entre comillas simples.

<default_result>

Valor por defecto que se devolverá si <value> no da como resultado ninguno de los valores <test_value>. Encerrar literales entre comillas simples.

Ejemplos

Ejemplo 1

Lo siguiente devuelve A car si PRODUCT_CODE es CAR y A truck si PRODUCT_CODE es TRUCK. Si PRODUCT_CODE no se ajusta a ninguno de los dos primeros casos, se devuelve una indicación FIELD_MISSING porque no se ha especificado un valor por defecto.

@CASE (PRODUCT_CODE, 'CAR', 'A car', 'TRUCK', 'A truck')

Ejemplo 2

Lo siguiente es similar al ejemplo anterior, excepto que proporciona un valor por defecto. Si PRODUCT_CODE no es CAR ni TRUCK, la función devuelve A vehicle.

@CASE (PRODUCT_CODE, 'CAR', 'A car', 'TRUCK', 'A truck', 'A vehicle')