La selección de campos desde una fuente de datos ODBC o proveedor OLE DB se realiza mediante sentencias SQL SELECT estándar. No obstante, si las sentencias SELECT se aceptan depende del controlador ODBC o proveedor OLE DB utilizado. El uso de la sentencia SELECT requiere una conexión de datos abierta a la fuente.
[ (Inner | Left | Right | Full) jointablenameonfieldref = fieldref ]
A veces se pueden concatenar varias sentencias SELECT en una sola mediante el uso de un operador union:
selectstatement Union selectstatement
La sentencia SELECT es interpretada por el driver ODBC o proveedor OLE DB, así que podrían producirse desviaciones de la sintaxis SQL general según las capacidades de los drivers ODBC o del proveedor OLE DB, por ejemplo:
as a veces no se permite, es decir, aliasname debe ir inmediatamente después de fieldname.
as a veces es obligatorio si se usa un aliasname.
distinct, as, where, group by, order by o union a veces no son compatibles.
El driver ODBC a veces no acepta todos los símbolos de comillas enunciados anteriormente.
Nota informativa¡Esta no es una descripción completa de la sentencia SQL SELECT! Por ej. las sentencias SELECT se pueden anidar, se pueden hacer varias uniones en una sentencia SELECT, la cantidad de funciones permitidas en las expresiones a veces es muy grande, etc.
Argumentos:
Argumentos
Argumento
Descripción
distinct
distinct se utiliza un predicado si las combinaciones duplicadas de valores en los campos seleccionados solo se deben cargar una vez.
distinctrow
distinctrow es un predicado utilizado si los registros duplicados en la tabla de origen solo deberían cargarse una vez.
fieldlist
fieldlist ::= (*| field ) {, field }
Una lista de los campos que se van a seleccionar. Usar * como una lista de campos indica todos los campos de la tabla.
fieldlist ::= field {, field }
Una lista de uno o más campos, separados por comas.
field ::= ( fieldref | expression ) [as aliasname ]
La expresión puede ser una función numérica o de cadena basada en uno o varios campos. Algunos de los operadores y funciones generalmente aceptados son: +, -, *, /, & (concatenación de cadenas), sum(fieldname), count(fieldname), avg(fieldname)(average), month(fieldname), etc. Consulte la documentación del driver ODBC para más información.
fieldref ::= [ tablename. ] fieldname
tablename y fieldname son cadenas de texto idénticas a lo que implican. Deben estar entre comillas dobles rectas si contienen por ej. espacios.
La cláusula as se usa para asignar un nuevo nombre al campo.
from
tablelist ::= table {, table }
La lista de las tablas de las que se van a seleccionar los campos.
where es una cláusula utilizada para indicar si un registro debe incluirse en la selección o no.
criterion es una expresión lógica que a veces puede ser muy compleja. Algunos de los operadores aceptados son: operadores y funciones numéricas, =, <> o #( no igual), >, >=,<, <=, and, or, not, exists, some, all, in y también nuevas sentencias SELECT. Consulte la documentación del driver ODBC o proveedor OLE DB para más información.
group by
group by es una cláusula utilizada para agregar (agrupar) varios registros en uno. Dentro de un grupo, para un determinado campo, todos los registros deben tener el mismo valor, o el campo sólo podrá utilizarse desde dentro de una expresión, p.ej. como una suma o una media. La expresión basada en uno o varios campos se define en la expresión del símbolo de campo.
having
having es una cláusula que se usa para calificar grupos de una manera similar a como se usa la cláusula where para calificar registros.
order by
order by es una cláusula que se utiliza para indicar el criterio de ordenación de la tabla resultante de la sentencia SELECT.
join
join es un cualificador que indica si se deben unir varias tablas en una. Los nombres de campo y los nombres de tabla deben estar entre comillas si contienen espacios en blanco o letras de los juegos de caracteres nacionales. Cuando el script es generado automáticamente por Qlik Sense, el símbolo de comillas utilizado es el preferido del driver ODBC o el proveedor de OLE DB, especificados en la definición de la fuente de datos de la sentencia Connect.
Ejemplo 1:
SELECT * FROM `Categories`;
Ejemplo 2:
SELECT `Category ID`, `Category Name` FROM `Categories`;
Ejemplo 3:
SELECT `Order ID`, `Product ID`,
`Unit Price` * Quantity * (1-Discount) as NetSales
FROM `Order Details`;
Ejemplo 4:
SELECT `Order Details`.`Order ID`,
Sum(`Order Details`.`Unit Price` * `Order Details`.Quantity) as `Result`
FROM `Order Details`, Orders
where Orders.`Order ID` = `Order Details`.`Order ID`
No dude en indicarnos en qué podemos mejorar si encuentra algún problema en esta página o su contenido, como, por ejemplo, errores tipográficos, pasos que falta o errores técnicos.