Uso de las comillas en el script

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

En el interior de sentencias LOAD

En una sentencia LOAD se deben usar como comillas los símbolos siguientes:

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

comillas dobles

" " 34 "cadena"
corchetes [ ] 91, 93 [cadena ]
comillas oblicuas ` ` 96 `cadena`
Literales de cadena
Descripción Símbolo Punto de código Ejemplo
comillas simples

' '

39 'cadena'

En sentencias SELECT

Para una sentencia SELECT interpretada por un driver ODBC, el uso puede variar. Por lo general, debe utilizar las comillas dobles rectas (Alt + 0034) para los nombres de campos y tablas, y las comillas simples rectas (Alt + 0039) para los literales y evitar el uso de acentos graves. No obstante, hay algunos drivers ODBC que no solo aceptan los acentos graves como comillas, sino que los prefieren. En tal caso, las sentencias SELECT generadas contienen comillas con acentos graves.

Ejemplo de comillas en Microsoft Access

Microsoft Access ODBC Driver 3.4 (incluido en Microsoft Access 7.0) acepta las siguientes comillas 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 donde Qlik Sense espera una expresión, las comillas dobles denotan una referencia de 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 se han creado o que están en el resultado de una sentencia LOAD, por ejemplo Exists() y Peek(). Estas referencias de campo se llaman referencias de campo fuera de contexto, a diferencia de las referencias de campo fuente, que hacen referencia a campos que están en 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 usa como parte de la lista de campo en una sentencia LOAD o SELECT, la cadena de texto "Sweden" se cargará como valor de campo en el campo Qlik Sense "Country".

Example:  

"land" as Country

Cuando esta expresión se utiliza como una 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 la tabla denominada "land" se cargará como valores de campo en el campo Qlik Sense "Country". Esto significa que land se tratará como una referencia de 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 utiliza como parte de una expresión, en un primer paso se interpretará como la cadena de texto "12/31/96", que a su vez se puede interpretar como una fecha si el formato de 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 utiliza como parte de una expresión, se interpretará numéricamente como 12 dividida por 31 dividida por 96.

Usar comillas en una cadena

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

Hay dos métodos de citar una cadena que contiene comillas.

Utilizar una comilla específica para citar la cadena

Elegir un símbolo de entrecomillado que no se use dentro de la cadena y utilíizarlo para citar toda la cadena. Qlik Sense usará ese símbolo de entrecomillado específico para determinar dónde comienza y termina la cadena.

Cualquiera de las comillas siguientes se puede utilizar para citar la cadena completa:

  • Comillas dobles " "
  • Corchetes [ ]
  • Acentos graves ` `
  • Comillas simples ' '

Example:  

[Tabla '1 "2"]

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

'string `Nombre1` "Nombre2'

Las comillas simples se utilizan para citar la cadena. La cadena se carga como: string `Nombre1` "Nombre2

Usar caracteres de escape

Los caracteres de escape son una instancia adicional de comillas que se utilizan para citar la cadena. Deben agregarse junto a cada instancia de comillas que aparezca dentro de la cadena. Cuando todas las comillas se usen dentro de una cadena, debe agregar caracteres de escape al lado del mismo tipo de comillas utilizado para citar la cadena. Los caracteres de escape también se pueden usar si desea usar una comilla que ya esté en uso en una cadena.

Solo se pueden usar como caracteres de escape los siguientes signos:

  • Comillas dobles " "
  • Corchetes [ ]
  • Comillas simples ' '

Example:  

"Miguel dijo ""Hace un día precioso""."

Si cita la cadena con las comillas dobles "", debe agregar una comilla doble adicional al lado de cada comilla doble utilizada dentro de la cadena.

Esta cadena se carga como Miguel dijo "Hace un día precioso". Usando el carácter de escape "", el editor de carga de datos de Qlik Sense entiende qué comillas dobles forman parte de la cadena y qué comillas indican el final de la cadena. La comilla simple ' utilizada en la abreviatura en inglés It's no es necesario que sea de escape porque no es el símbolo utilizado para citar la cadena.

Example:  

'Michael said: "It''s a beautiful day".' (en inglés)

Si cita esta cadena con las comillas simples "", entonces debe agregar una comilla simple adicional al lado de cada comilla simple utilizada dentro de la cadena.

Esta cadena se carga como Michael said "It's a beautiful day". La comilla doble " utilizada en la abreviatura en inglés para citar lo que Michael dijo no es necesario que sea de escape porque no es el símbolo utilizado para citar la cadena.

Example:  

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

Los corchetes [] se comportan de manera diferente a las otras dos comillas. Si desea usar 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 el corchete derecho ] es de escape. Las comillas simples ' y las comillas dobles " utilizadas en la cadena no necesitan ser de escape, ya que no se utilizan para citar la cadena.