Com a instrução SELECT, você poderá especificar o nome de cada coluna que deseja recuperar de uma tabela.
Você pode nomear uma ou mais colunas de uma tabela ou exibição ou selecionar todas as colunas.
Cada instrução SELECT pode selecionar informações de diversas tabelas.
Você pode usar a palavra-chave DISTINCT para eliminar informações duplicadas se você estiver selecionando dados a partir de várias tabelas.
QMF exibe dados selecionados de acordo com o código de edição padrão para o tipo de dado.
Não pode ser usada mais de uma instrução SELECT em uma consulta que inclua outras instruções SQL.
Selecionando Todas as Colunas de uma Tabela
Para recuperar todas as colunas de uma tabela, utilize um asterisco (*) em vez de nomear as colunas.
O formato de uma instrução SELECT usada para essa seleção é:
SELECT *
FROM tablename
Nessa instrução, tablename é o nome da tabela ou a visualização que você está procurando.
Por exemplo, essa intrução retorna todas as colunas em Q.ORG:
SELECT *
FROM Q.ORG
Essa consulta retorna todas as colunas, mas só exibe as linhas onde o número do departamento é 10:
SELECT *
FROM Q.STAFF
WHERE DEPT = 10
Selecionando Colunas de uma Tabela
Para selecionar colunas a partir de uma tabela, insira SELECT, seguido pelos nomes exatos das colunas na ordem (da esquerda para a direita) na qual as deseja
em seu relatório.
Separe nomes de colunas com uma vírgula.
A instrução a seguir produz um relatório com os nomes do departamento à esquerda e os números do departamento à direita:
SELECT DEPTNAME
, DEPTNUMB
FROM Q.ORG
Você pode alterar a ordem das colunas do relatório, alterando o formulário.
A ordem padrão das colunas no formulário é a mesma ordem na qual elas são nomeadas na consulta.
Você pode selecionar uma coluna mais de uma vez; isso permite que você utilize várias funções de agregação no formulário.
É possível selecionar até 750 nomes de colunas (ou expressões) no DB2 for z/OS e até 255 quando conectado a bancos de dados DB2 for VSE and VM .
Você pode utilizar um nome de coluna em uma cláusula WHERE sem utilizar o nome da coluna na cláusula SELECT.
Exemplos:
- Para selecionar somente as colunas ID e NAME da tabela Q.STAFF, utilize uma consulta como a seguinte:
SELECT ID
, NAME
FROM Q.STAFF
- Para selecionar as colunas NAME e ID da tabela Q.STAFF, e listar NAME primeiro, utilize uma consulta como a seguinte:
SELECT NOME
, ID
FROM Q.STAFF
Incluir Colunas Descritivas
Você pode incluir uma coluna de informações descritivas a seu relatório, colocando uma constante entre aspas na lista de colunas de sua instrução SELECT.
O comprimento de uma constante é determinado pelo banco de dados.
As constantes podem conter caracteres alfabéticos, caracteres numéricos ou uma combinação dos dois.
O exemplo a seguir lista os nomes e endereços de pessoas da tabela Q.APPLICANT com 14 anos de escolaridade e identifica cada um como candidato.
Esta consulta:
SELECT NAME
, ADDRESS
, 'APPLICANT'
FROM Q.APPLICANT
WHERE EDLEVEL = 14
ORDER BY NAME
Produz este relatório:
NAME ADDRESS COL1
--------- ----------------- ---------
CASALS PALO ALTO,CA APPLICANT
REID ENDICOTT,NY APPLICANT
RICHOWSKI TUCSON,AZ APPLICANT
O relatório inclui três colunas: uma contendo nomes, uma contendo endereços e uma nova coluna criada contendo a palavra APPLICANT para cada linha selecionada.
O gerenciador do banco de dados adiciona um nome de coluna à coluna recém-criada.
Esse nome varia, dependendo do gerenciador do banco de dados usado em seu site.
Você pode alterar o nome dessa coluna utilizando os painéis de formulário.
Usando as Subconsultas
Subconsultas selecionam dados de uma tabela.
Os dados são então usados para testar uma condição da cláusula WHERE da consulta principal.
Por exemplo, essa consulta possui uma subconsulta (começando com a instrução SELECT DEPTNUMB) que produz uma lista de funcionários que trabalham na divisão Leste:
SELECT NOME
, ID
FROM Q.STAFF
WHERE DEPT = SOME
(SELECT DEPTNUMB
FROM Q.ORG
WHERE DIVISION='EASTERN')
Primeiro, a subconsulta encontra os números de departamentos da divisão Eastern.
Em seguida, a consulta principal procura funcionários que trabalham em qualquer um desses departamentos.
Quando existem diversas subconsultas, a última é executada primeiro e a primeira é executada por último.
Exemplos
Cada um dos exemplos a seguir inclui uma subconsulta que é destacada.
SELECT DEPT
, NAME
, SALARY
FROM Q.STAFF CORRVAR
WHERE SALARY =
(SELECT MAX(SALARY)
FROM Q.STAFF
WHERE DEPT = CORRVAR.DEPT)
SELECT ID
, NAME
FROM Q.STAFF
WHERE DEPT IN
(SELECT DISTINCT DEPTNUMB
FROM Q.ORG
WHERE DIVISION = 'MIDWEST')
ORDER BY ID
SELECT DEPT
, AVG(SALARY)
FROM Q.STAFF
GROUP BY DEPTO
HAVING AVG(SALARY) >
(SELECT AVG(SALARY) FROM Q.STAFF)
Acessando dados QMF Data Service (QDS)
Os usuários do QMF podem usar o recurso QMF Data Service para acessar dados não-DB2, como VSAM, IMS, arquivos sequenciais, dados SMF, dados SYSLOG e mais.
Para acessar dados QDS, a variável global DSQEC_DS_SUPPORT do QMF for TSO e CICS deve ser configurada para um valor de '1'; para obter mais informações sobre como
configurar a variável global DSQEC_DS_SUPPORT, consulte Variáveis globais que controlam a maneira como os comandos e procedimentos são executados.
As origens de dados QMF Data Service são acessadas por nomes de tabelas com três partes na consulta SQL.
QMF Data Service pode associar uma ou mais origens existentes no servidor. O SQL aceito pelo QMF Data Service é um subconjunto de SQL aceito por DB2 para z/OS.
Consulte o guia QMF Data Service SQL para a sintaxe SQL aceita.
© Copyright IBM Corp.