Fórum Como fazer um Array em SQL Server #460284
06/11/2013
0
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
Curtir tópico
+ 0Posts
06/11/2013
Gustavo Bretas
Melhora seu exemplo ae!
Gostei + 0
06/11/2013
Samuel Lopes
Só coloquei assim como exempo...
seria assim:
SELECT CANAIS * FROM TABELA
RETORNARÁ:
---------------------------------
| PORTAL |
---------------------------------
| REDES |
---------------------------------
| SOCIAIS |
---------------------------------
| JORNAL |
---------------------------------
| IMPRESSOS |
----------------------------------
Gostei + 0
06/11/2013
Gustavo Bretas
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
06/11/2013
Samuel Lopes
Onde será gravado o que o usuário selecionar em uma tabela
Sem chave estrangeira
Gostei + 0
06/11/2013
Gustavo Bretas
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 @RESULTADOEu estou sem SQL Server aqui pra testar, mas tenta descobrir o último registro, pra mudar o "separador" pra "e".
Espero ter ajudado!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)