Como buscar dados sql de uma única linha
UMA cursor
Conteúdo
o DECLARE CURSOR declaração especifica nome e escopo do cursor.
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
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 só 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
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.