Filtros SQL

Los filtros SQL son series de texto que se utilizan para especificar un subconjunto de elementos de datos en un tipo de datos interno o de base de datos SQL.

Para los tipos de datos de base de datos SQL e internos, el filtro es una cláusula SQL WHERE que proporciona un conjunto de comparaciones que deben ser verdaderas para que se pueda devolver un elemento de datos. Estas comparaciones se realizan generalmente entre nombres de campo y sus valores correspondientes.

Sintaxis

Para los tipos de datos de base de datos SQL, la sintaxis del filtro SQL se especifica en el origen de datos subyacente. El filtro SQL es el contenido de una cláusula SQL WHERE especificada en el formato proporcionado por la base de datos subyacente. Cuando los elementos de datos se recuperan del origen de datos, es filtro se pasa directamente a la base de datos subyacente para el proceso.

Para los tipos de datos internos, el motor de políticas procesa el filtro SQL de forma interna. Para los tipos de datos internos, la sintaxis es la siguiente:

Campo
				Operador
				Valor [AND | OR | NOT (Campo
				Operador
				Valor) ...]

donde Campo es el nombre de un campo de tipo de datos, Operador es un operador comparativo y Valor es el valor del campo.

Atención: Tenga en cuenta que ambos tipos de datos, interno y SQL, los literales de serie en un filtro SQL se deben especificar entre comillas dobles. El motor de políticas interpreta las dobles comillas antes de procesar el filtro SQL. El uso de comillas dobles dentro de un filtro SQL provoca errores de análisis.

Operadores

El tipo de comparación se especifica mediante uno de los operadores de comparación estándar. La sintaxis del filtro SQL soporta los operadores comparativos siguientes:

  • >
  • <
  • =
  • <=
  • =>
  • !=
  • LIKE
    Restricción: Puede utilizar el operador LIKE con expresiones regulares como las soportadas por el origen de datos subyacente.

La sintaxis del filtro SQL soporta los operadores booleanos AND, OR y NOT.

Consejo: Se pueden utilizar varias comparaciones juntas con los operadores AND, OR y NOT.

Orden de operación

Puede especificar el orden en que se evalúan las expresiones del SQL utilizando paréntesis.

Expresiones regulares

Consulte la documentación de la base de datos de su proveedor referente a las reglas de sintaxis específicas para el uso de expresiones regulares. Algunas bases de datos pueden requerir el uso caracteres de escape para los caracteres reservados de la consulta. Los filtros SQL de la consulta utilizan la barra inclinada invertida como carácter de escape (\). Si la base de datos también utiliza la barra inclinada invertida como carácter de escape, quizá tenga que doblar los caracteres para garantizar que el filtro de expresión regular se procesa correctamente. Puesto que la serie de filtro SQL se analiza dos veces, primero con el motor de política y después con el analizador SQL de base de datos, quizá sea necesario doblar los caracteres de escape para preservar la consulta durante su proceso.

Nota: Cuando se escribe un filtro SQL utilizando una expresión regular para un ObjectServer que precisa doblar los caracteres de escape para los caracteres reservados, deberá triplicar los caracteres de escape de la expresión. Esto es necesario porque el filtro se analiza tres veces, en primer lugar con el motor de política, después con el analizador SQL de ObjectServer y finalmente con la biblioteca de expresiones regulares de ObjectServer. Por ejemplo, para encerrar entre caracteres de escape los paréntesis de la serie "1_(22)", utilice este filtro SQL: "1_\\\\(22\\\\)".

Ejemplos

Aquí hay un ejemplo de un filtro SQL:

Location = 'NYC'
Location LIKE 'NYC.*'
Facility = 'Wandsworth' AND Facility = 'Putney'
Facility = 'Wall St.' OR Facility = 'Midtown'
NodeID >= 123345
NodeID != 123234

Puede utilizar este filtro para obtener todos los elementos de datos donde el valor del campo Ubicación es Nueva York:

Location = 'New York'

Mediante el uso de este filtro obtiene todos los elementos de datos donde el valor del campo Ubicación es Nueva York o New Jersey:

Location = 'New York' OR Location = 'New Jersey'

Para obtener todos los elementos de datos en los que el valor del campo Location es Chicago o Los Angeles y el valor del campo Level es 3:


(Location = 'New York' OR Location = 'New Jersey') AND Level = 3