Como buscar dados sql de uma única linha

UMA cursor

permite que o SQL para recuperar (ou atualizar ou excluir) uma única linha de cada vez para que você pode usar SQL em combinação com um aplicativo escrito em qualquer das línguas populares. Processamento cursores é um processo de três etapas:

  1. o DECLARE CURSOR declaração especifica nome e escopo do cursor.

  2. o ABERTO declaração recolhe as linhas da tabela selecionados pelo DECLARE CURSOR consultar expressão.

    Video: Vídeo Aula - Microsoft SQL Server - Como concatenar varias linhas em uma string

  3. o BUSCAR declaração na verdade recupera os dados.

O cursor pode apontar para uma das linhas no escopo do cursor, ou para a posição imediatamente antes da primeira linha no âmbito ou para o local imediatamente após a última linha no escopo, ou para o espaço vazio entre duas linhas. Você pode especificar onde o cursor aponta com a cláusula de orientação no BUSCAR declaração.

Sintaxe

A sintaxe para o BUSCAR declaração é

FETCH [[orientação] FROM] cursor-nameINTO meta-specification [, alvo-especificação] ... -

Sete opções de orientação estão disponíveis:

  • PRÓXIMO

    Video: Curso de SQL Server para Iniciantes (Aula 10) - Selecionando Dados

  • ANTERIOR

  • PRIMEIRO

  • ÚLTIMO

  • ABSOLUTO

  • RELATIVO



A opção padrão é PRÓXIMO, que, aliás, era o orientação disponível em versões de SQL antes SQL-92. o PRÓXIMO orientação move o cursor de onde quer que seja para a linha seguinte no conjunto especificado pela expressão de consulta. Isso significa que se o cursor está localizado antes do primeiro registro, ele se move para o primeiro registro.

Se ele aponta para gravar N, move-se para gravar n+1. Se o cursor aponta para o último registro no conjunto, move-se para além desse registro e notificação de uma condição não são devolvidos dados no SQLSTATE variável sistema.

As especificações-alvo são ou variáveis ​​de host ou parâmetros, dependendo se SQL embutido ou uma linguagem de módulo, respectivamente, está usando o cursor. O número e os tipos das especificações-alvo deve coincidir com o número e tipos das colunas especificadas pela expressão de consulta no DECLARE CURSOR.

Assim, no caso de SQL embutido, quando você buscar uma lista de cinco valores a partir de uma linha de uma tabela, cinco variáveis ​​de host deve estar lá para receber esses valores, e eles devem ser os tipos certos.

Orientação de um cursor rolável

Porque o cursor SQL é de rolagem, você tem outras opções além PRÓXIMO. Se você especificar ANTERIOR, o ponteiro se move para a linha imediatamente anterior a sua localização atual. Se você especificar PRIMEIRO, ele aponta para o primeiro registro no conjunto, e se você especificar ÚLTIMO, ele aponta para o último registro.

Video: Unificação de várias planilhas em uma única só planilha

Quando você usa o ABSOLUTO e RELATIVO orientação, você deve especificar um valor inteiro, bem. Por exemplo, FETCH ABSOLUTO 7 move o cursor para a sétima linha desde o início do jogo. FETCH RELATIVE 7 move o cursor sete linhas para além da sua posição atual. FETCH RELATIVE 0 não move o cursor.

FETCH RELATIVE 1 tem o mesmo efeito que FETCH PRÓXIMA. FETCH RELATIVE -1 tem o mesmo efeito que FETCH PRÉVIO. FETCH ABSOLUTO 1 dá-lhe o primeiro registro no conjunto, FETCH ABSOLUTO dois dá-lhe o segundo registro no conjunto, e assim por diante.

Similarmente, FETCH ABSOLUTO -1 dá-lhe o último registro no conjunto, FETCH ABSOLUTO -2 dá-lhe o próximo ao último registro, e assim por diante. especificando FETCH ABSOLUTE 0 retorna a excepção código de condição não-dados, conforme será FETCH ABSOLUTE 17 Se apenas 16 linhas estão no conjunto. BUSCAR dá-lhe o registro especificado pela especificação de valor simples.

instruções DELETE e UPDATE posicionadas

Você pode executar operações de exclusão e atualização na linha para que um cursor está apontando. A sintaxe do EXCLUIR declaração parece com isso:

DELETE FROM table-name WHERE CURRENT OF cursor-name -

Se o cursor não apontar para uma linha, a instrução retorna uma condição de erro, e nenhuma eliminação ocorre.

A sintaxe do ATUALIZAR declaração é a seguinte:

Atualizar a tabela-nameset column-name = valor [, column-name = value] ... WHERE CURRENT OF cursor-name -

O valor que você coloca em cada coluna especificado deve ser uma expressão de valor ou a palavra-chave PADRÃO. Se uma operação de atualização posicionada tentativa de retornar um erro, a atualização não for realizada.


Publicações relacionadas