Como fazer um Array em SQL Server
Tenho o seguinte problema, em uma consulta SQL eu retorno um ou mais valores.
Exemplo:
SELECT CANAIS * FROM TABELA
RETORNANDO (PORTAL,REDES SOCIAIS, JORNAL, IMPRESSOS)
Com estes valores preciso colocar em um array e comparalos +/- da seguinte forma
SE (VALORE(S) DO ARRAY ==''PORTAL")
BEGIN
PRINT 'VOCÊ MARCOU PORTAL'
END
SE (VALORE(S) DO ARRAY ==''PORTAL" AND VALORE(S) DO ARRAY ==''JORNAL" )
BEGIN
PRINT 'VOCÊ MARCOU PORTAL E JORNAL'
END
E assim por diante...
Exemplo:
SELECT CANAIS * FROM TABELA
RETORNANDO (PORTAL,REDES SOCIAIS, JORNAL, IMPRESSOS)
Com estes valores preciso colocar em um array e comparalos +/- da seguinte forma
SE (VALORE(S) DO ARRAY ==''PORTAL")
BEGIN
PRINT 'VOCÊ MARCOU PORTAL'
END
SE (VALORE(S) DO ARRAY ==''PORTAL" AND VALORE(S) DO ARRAY ==''JORNAL" )
BEGIN
PRINT 'VOCÊ MARCOU PORTAL E JORNAL'
END
E assim por diante...
Samuel Lopes
Curtidas 0
Respostas
Gustavo Bretas
06/11/2013
Você traz o resultado em colunas? Não pode ser linhas? Em linhas da pra vc fazer um cursor!
Melhora seu exemplo ae!
Melhora seu exemplo ae!
GOSTEI 0
Samuel Lopes
06/11/2013
Ele retorna em linhas mesmo..
Só coloquei assim como exempo...
seria assim:
SELECT CANAIS * FROM TABELA
RETORNARÁ:
---------------------------------
| PORTAL |
---------------------------------
| REDES |
---------------------------------
| SOCIAIS |
---------------------------------
| JORNAL |
---------------------------------
| IMPRESSOS |
----------------------------------
Só coloquei assim como exempo...
seria assim:
SELECT CANAIS * FROM TABELA
RETORNARÁ:
---------------------------------
| PORTAL |
---------------------------------
| REDES |
---------------------------------
| SOCIAIS |
---------------------------------
| JORNAL |
---------------------------------
| IMPRESSOS |
----------------------------------
GOSTEI 0
Gustavo Bretas
06/11/2013
E onde vc verifica qual dos canais foi selecionado?
Pq pelo que entendi do seu "modelo", tem duas possibilidades. Se vc tem uma tabela com todos os canais, vc pode ter um tabela onde seu usuário selecione mais de um canal, ou um campo usando chave estrangeira, onde ele marque somente uma opção. Então?
Pq pelo que entendi do seu "modelo", tem duas possibilidades. Se vc tem uma tabela com todos os canais, vc pode ter um tabela onde seu usuário selecione mais de um canal, ou um campo usando chave estrangeira, onde ele marque somente uma opção. Então?
GOSTEI 0
Samuel Lopes
06/11/2013
Tenho vários checkboxs
Onde será gravado o que o usuário selecionar em uma tabela
Sem chave estrangeira
Onde será gravado o que o usuário selecionar em uma tabela
Sem chave estrangeira
GOSTEI 0
Gustavo Bretas
06/11/2013
Certo, adapta pra sua tabela, e veja se atende a sua necessidade!
Eu estou sem SQL Server aqui pra testar, mas tenta descobrir o último registro, pra mudar o "separador" pra "e".
Espero ter ajudado!
DECLARE @CANAIS VARCHAR(30) DECLARE @SEPARADOR VARCHAR(1) DECLARE @RESULTADO VARCHAR(200) -- SET @SEPARADOR = ' ' SET @RESULTADO = NULL -- Cursor para percorrer os canais DECLARE cursor_Canais CURSOR FOR SELECT CANAIS FROM TABELA -- Abrindo Cursor para leitura OPEN cursor_Canais -- Lendo a próxima linha FETCH NEXT FROM cursor_Canais INTO @CANAIS -- Percorrendo linhas do cursor (enquanto houverem) WHILE @@FETCH_STATUS = 0 BEGIN @RESULTADO = ISNULL(@RESULTADO, 'VOCÊ MARCOU') + @SEPARADOR + @CANAIS @SEPARADOR := ', ' -- Lendo a próxima linha FETCH NEXT FROM cursor_Canais INTO @CANAIS END -- Fechando Cursor para leitura CLOSE cursor_Canais -- Desalocando o cursor DEALLOCATE cursor_Canais IF @RESULTADO IS NULL SET @RESULTADO = 'NENHUM CANAL SELECIONADO' -- Mostrando o Resultado PRINT @RESULTADO -- Ou SELECT @RESULTADO
Eu estou sem SQL Server aqui pra testar, mas tenta descobrir o último registro, pra mudar o "separador" pra "e".
Espero ter ajudado!
GOSTEI 0