none
Gerar Mensagem de Personalizada se o Campo Tiver Determinado Valor RRS feed

  • Pergunta

  • Tenho uma tabela :

    Aluno            Idade

    Alex              0

    Pedro           2

    Quero que se eu digitar

    select idade from tabela where aluno = 'Alex'

    Apareça:

    'Recem-nascido'

    segunda-feira, 24 de novembro de 2014 18:41

Respostas

Todas as Respostas

  • Jean,

    Acredito que o ideal neste caso é criar uma VIEW com a definição deste critério para exibição.

    Segue abaixo um exemplo para você adaptar à sua necessidade:

    CREATE VIEW vwALUNOS
    AS
      SELECT 
        CASE 
          WHEN IDADE = O THEN 'RECEM NASCIDO'
          ELSE IDADE
        END AS IDADE_ALUNO,
        ALUNO
      FROM 
        TB_ALUNO
    GO
    
    SELECT * FROM vwALUNOS WHERE ALUNO = 'Alex'
    GO


    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    • Editado Durval RamosModerator segunda-feira, 24 de novembro de 2014 18:50 adicionada a condição ao critério
    segunda-feira, 24 de novembro de 2014 18:49
    Moderador
  • Boa tarde,

    Experimente dessa forma:

    select 
        case when idade = 0 then 'Recem-nascido' else cast(idade as varchar(13)) end as idade
    from tabela 
    

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    segunda-feira, 24 de novembro de 2014 18:50
  • Deleted
    segunda-feira, 24 de novembro de 2014 19:26
  • "gapimex", realmente é necessário ficar atento ao tipo de dados quando em uma mesma coluna se misturam tipos diferentes. No caso do Jean, ou é um valor numérico (a idade) ou um texto ("recém-nascido"). Costumo utilizar o tipo de dados sql_variant para tratar as exceções.

    SELECT aluno, case when idade = 0 
    then Cast('Recém-nascido' as sql_variant)
    else idade end as idade from tabela;


        José Diz     Belo Horizonte, MG - Brasil



    José Diz,

    Bem lembrado o uso do SQL_Variant!!!!


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com

    quarta-feira, 26 de novembro de 2014 14:24