none
Desenvolver um script RRS feed

  • Pergunta

  • Boa Tarde Pessoal.

     

    Eu tenho aqui em uma das minhas tabelas as seguintes informações:

     

    Administração - Novo - 2007/1
    Administração - Novo - 2007/1
    Administração - Novo - 2007/1
    Administração - Novo - 2007/1
    Administração - Novo - 2007/1
    Ciência Política
    Ciência Política
    Ciências Contábeis (enfase em controladoria) - Novo - 2008/1
    Ciências Contábeis (enfase em controladoria) - Novo - 2009/1
    Ciências Contábeis (enfase em controladoria) - Novo - 2009/1

    Como que eu faço para pegar somente o nome do curso? Eu não quero que apareça o que estão em vermelho.

     

    Até mais,

    terça-feira, 2 de dezembro de 2008 18:48

Respostas

  • Boa Tarde,

     

    Veja se o seguinte script o ajuda:

     

    Code Snippet

    DECLARE @T TABLE (Nome VARCHAR(100))

     

    INSERT INTO @T VALUES ('Administração - Novo - 2007/1')

    INSERT INTO @T VALUES ('Administração - Novo - 2007/1')

    INSERT INTO @T VALUES ('Administração - Novo - 2007/1')

    INSERT INTO @T VALUES ('Administração - Novo - 2007/1')

    INSERT INTO @T VALUES ('Administração - Novo - 2007/1')

    INSERT INTO @T VALUES ('Ciência Política')

    INSERT INTO @T VALUES ('Ciência Política')

    INSERT INTO @T VALUES ('Ciências Contábeis (enfase em controladoria) - Novo - 2008/1')

    INSERT INTO @T VALUES ('Ciências Contábeis (enfase em controladoria) - Novo - 2009/1')

    INSERT INTO @T VALUES ('Ciências Contábeis (enfase em controladoria) - Novo - 2009/1')

     

    SELECT DISTINCT

    CASE WHEN CHARINDEX('-',Nome) = 0 THEN NOME ELSE LEFT(Nome,CHARINDEX('-',Nome)-2) END AS Curso

    FROM @T

     

     

    [ ]s,

     

    Gustavo

    terça-feira, 2 de dezembro de 2008 18:57
  • Olá Fábio,

     

    O comando CHARINDEX localiza a posição de um determinado caractér. Quando coloquei CHARINDEX('-',Nome) eu desejei localizar a posição do hífen na coluna nome. Como o que me interessa é a parte antes do hífen usei o LEFT para retornar toda a string até duas casas antes do hífen (justamente para que o espaço e o hífen não sejam retornados).

     

    Pode acontecer da coluna não ter o hífen, por isso usei o CASE antes. As colunas que não tem o hífen, ou seja, CHARINDEX será igual a zero, o nome é simplesmente retornado.

     

    Você poderá ter maiores detalhes no Books OnLine

     

    [ ]s,

     

    Gustavo

     

    terça-feira, 2 de dezembro de 2008 19:10

Todas as Respostas

  • Boa Tarde,

     

    Veja se o seguinte script o ajuda:

     

    Code Snippet

    DECLARE @T TABLE (Nome VARCHAR(100))

     

    INSERT INTO @T VALUES ('Administração - Novo - 2007/1')

    INSERT INTO @T VALUES ('Administração - Novo - 2007/1')

    INSERT INTO @T VALUES ('Administração - Novo - 2007/1')

    INSERT INTO @T VALUES ('Administração - Novo - 2007/1')

    INSERT INTO @T VALUES ('Administração - Novo - 2007/1')

    INSERT INTO @T VALUES ('Ciência Política')

    INSERT INTO @T VALUES ('Ciência Política')

    INSERT INTO @T VALUES ('Ciências Contábeis (enfase em controladoria) - Novo - 2008/1')

    INSERT INTO @T VALUES ('Ciências Contábeis (enfase em controladoria) - Novo - 2009/1')

    INSERT INTO @T VALUES ('Ciências Contábeis (enfase em controladoria) - Novo - 2009/1')

     

    SELECT DISTINCT

    CASE WHEN CHARINDEX('-',Nome) = 0 THEN NOME ELSE LEFT(Nome,CHARINDEX('-',Nome)-2) END AS Curso

    FROM @T

     

     

    [ ]s,

     

    Gustavo

    terça-feira, 2 de dezembro de 2008 18:57
  • Boa Tarde Gustavo.

     

    Qual é a função desse comando ai CHARINDEX? Explique-me o que vocês fez ai, por favor.

     

    Até mais,

    terça-feira, 2 de dezembro de 2008 19:03
  • Olá Fábio,

     

    O comando CHARINDEX localiza a posição de um determinado caractér. Quando coloquei CHARINDEX('-',Nome) eu desejei localizar a posição do hífen na coluna nome. Como o que me interessa é a parte antes do hífen usei o LEFT para retornar toda a string até duas casas antes do hífen (justamente para que o espaço e o hífen não sejam retornados).

     

    Pode acontecer da coluna não ter o hífen, por isso usei o CASE antes. As colunas que não tem o hífen, ou seja, CHARINDEX será igual a zero, o nome é simplesmente retornado.

     

    Você poderá ter maiores detalhes no Books OnLine

     

    [ ]s,

     

    Gustavo

     

    terça-feira, 2 de dezembro de 2008 19:10