Uso de las comillas en el script

Podemos utilizar las comillas de diversas maneras en las sentencias de script.

Dentro de sentencias LOAD

En una sentencia LOAD se pueden usar como comillas los signos siguientes:

  Descripción Símbolo Punto de código Ejemplo

Nombres de campo

comillas dobles

" " 34 "cadena"
  corchetes [ ] 91, 93 [cadena ]
  comillas oblicuas ` ` 96 `cadena`

Literales de cadena

comillas simples

' '

39 'cadena'

En sentencias SELECT

Para una sentencia SELECT interpretada por un driver ODBC esto puede variar ligeramente. En general, se deben usar las comillas dobles rectas (Alt + 0034) para nombres de campos y tablas y las comillas simples rectas (Alt + 0039) para literales, y evitar las comillas oblicuas. No obstante, hay algunos drivers ODBC que no solo aceptan las comillas oblicuas, sino que las prefieren. En tal caso, las sentencias SELECT generadas contienen comillas oblicuas.

Ejemplo de comillas en Microsoft Access

El Microsoft Access ODBC Driver 3.4 (incluido en Microsoft Access 7.0) acepta los siguientes símbolos de entrecomillado cuando analiza la sentencia SELECT:

Nombres de campo y nombres de tabla:

[ ]

" " ` `

Literales de cadena:

' '

Otras bases de datos pueden tener distintas convenciones.

Fuera de sentencias LOAD

Fuera de una sentencia LOAD, en lugares en los que QlikView espera una expresión, las comillas dobles indican una referencia variable y no una referencia de campo. Si utilizamos las comillas dobles, la cadena incluida en ellas se interpretará como una variable y se utilizará el valor de la variable.

Referencias de campo fuera de contexto y referencias de tabla

Algunas funciones de script se refieren a campos que ya han sido creados, o están en la salida de una sentencia LOAD, por ejemplo Exists() y Peek(). Estas referencias de campo reciben el nombre de referencias de campo fuera de contexto, a diferencia de las referencias de campo fuente que remiten a campos que están dentro de contexto, es decir, en la tabla de entrada de la sentencia LOAD.

Las referencias de campo fuera de contexto y referencias de tabla deberían considerarse como literales y por lo tanto necesitan comillas simples.

Diferencia entre nombres y literales

La diferencia entre los nombres y literales es clara si comparamos los siguientes ejemplos:

Example:  

'Sweden' as Country

Cuando esta expresión se utiliza como parte de la lista de campos en una sentencia LOAD o SELECT, la cadena de texto "Sweden" se cargará como un valor de campo en el campo "Country" de QlikView.

Example:  

"land" as Country

Cuando esta expresión se utiliza como parte de la lista de campos en una sentencia LOAD o SELECT, el contenido del campo de la base de datos o la columna de tabla denominada "land" se cargará como valores de campo en el campo "Country" de QlikView. Esto significa que land se trata como una referencia a un campo.

Diferencia entre números y literales de cadena

La diferencia entre números y literales de cadena es clara si comparamos los siguientes ejemplos:

Example:  

'12/31/96'

Cuando esta cadena se usa como parte de una expresión, en una primera instancia se interpretará como la cadena de texto "12/31/96", la cual a su vez puede ser luego interpretada como una fecha si el formatode fecha es ‘MM/DD/YY’. En tal caso se almacenará como un valor dual con una representación tanto numérica como textual.

Example:  

12/31/96

Cuando esta cadena se usa como parte de una expresión, se interpretará numéricamente como 12 dividido por 31 dividido por 96.

Usar comillas en una cadena

Cuando una cadena contiene caracteres que se pueden usar como comillas, es importante indicar claramente dónde comienza una cadena y dónde termina al entrecomillarla. Si la cadena no se entrecomilla correctamente, la secuencia de script fallará o cargará los datos de forma incorrecta.

Hay dos métodos para entrecomillar una cadena que contiene signos de comillas.

Utilice una comilla específica para entrecomillar la cadena

Elija un signo de entrecomillado que no se use dentro de la cadena y utilícelo para entrecomillar la cadena completa. QlikView utilizará esa comilla específica para determinar dónde comienza y termina la cadena.

Se puede utilizar cualquiera de las comillas siguientes para entrecomillar la cadena completa:

  • comillas dobles " "
  • corchetes [ ]
  • comillas oblicuas ` `
  • comillas simples ' '

Example:  

[Tabla '1 "2"]

Se utilizan corchetes para entrecomillar la cadena. La cadena se carga como: Tabla '1 "2"

'cadena `Nombre1` "Nombre2'

Se utilizan comillas simples para entrecomillar la cadena. La cadena se carga como: cadena `Nombre1` "Nombre2

Utilice caracteres de escape

Los caracteres de escape son una instancia adicional de la comilla que se utiliza para entrecomillar la cadena. Deben agregarse junto a cada instancia de la comilla que aparece dentro de la cadena. Cuando todas las comillas se utilizan dentro de una cadena, debe agregar caracteres de escape junto al mismo tipo de comillas que se usa para entrecomillar la cadena. Los caracteres de escape también se pueden usar si desea utilizar una comilla que ya esté en uso en una cadena.

Solo se pueden usar como caracteres de escape los siguientes símbolos:

  • comillas dobles " "
  • corchetes [ ]
  • comillas simples ' '

Example:  

"Michael said ""It's a beautiful day""."

Si cita la cadena usando las comillas dobles "", entonces debe agregar una comilla doble adicional al lado de cada comilla doble que se use dentro de la cadena.

Esta cadena se carga como Michael said "It's a beautiful day". Usando el carácter de escape "", el editor de script de QlikView entiende qué comillas dobles forman parte de la cadena y qué comillas indican el final de la cadena. La comilla simple ' utilizada en la contracción It's no necesita un carácter de escape porque no es el signo utilizado para citar la cadena.

Example:  

'Michael said: "It''s a beautiful day".'

Si cita esta cadena usando comillas simples, entonces debe agregar una comilla simple adicional junto a cada comilla simple que se use dentro de la cadena.

Esta cadena se carga como Michael said "It's a beautiful day". La comilla doble " utilizada para citar lo que Michael dijo no necesita un carácter de escape porque no es el símbolo usado para citar la cadena.

Example:  

"Michael said ""It's a beautiful day""."

Los corchetes [] se comportan de manera diferente de las otras dos comillas. Si desea utilizar corchetes como carácter de escape, debe agregar un corchete adicional al lado del corchete derecho] solamente, y no al lado del corchete izquierdo [.

Esta cadena se carga como Michael said [It's a "beautiful day]. Solo se libera el corchete derecho ]. La comilla simple ' y la comilla doble " utilizadas en la cadena no necesitan ser liberadas ya que no se utilizan para citar la cadena.