Mostrando postagens com marcador Como. Mostrar todas as postagens
Mostrando postagens com marcador Como. Mostrar todas as postagens

quinta-feira, 6 de setembro de 2012

Prova Marcada!!


Boa Noite Senhooooores!!!

               Agora é oficial! Agendei a minha prova para este mês de setembro e ainda com um desconto bacana da Microsoft! Neste link você consegue um voucher para todas as provas do MCSA em SQL Server 2012 com 15% de desconto e todas as provas com Second Shot(caso não passe na prova de primeira, você pode fazer ela de novo sem pagar nada mais por isso!).

               Vou aumentar a minha carga horaria de estudos, já que estou na reta final, e para isso segue um blog que irei ler por completo com o resumo de tudo o que será cobrado na prova.

               Mudando de assunto, estava eu na firma fazendo uma pesquisa e utilizei o PIVOT que é conhecido por transformar linhas em colunas. Existe uma grande expectativa neste cara mas desde a sua criação ele ainda não convenceu devido as suas limitações(saber previamente as colunas no resultado final). Um caso bastante comum de utilizar este cara é para fazer um somatório mensal de várias categorias:

SELECT            Title
,                 [1]
,                 [2]
,                 [3]
,                 [4]
,                 [5]
,                 [6]
,                 [7]
,                 [8]
,                 [9]
,                 [10]
,                 [11]
,                 [12]
FROM        (
      SELECT            Title
      ,                 EmployeeID
      ,                 qtd               = MONTH(BirthDate)
      FROM              [AdventureWorks].[HumanResources].[Employee]   E
) x
PIVOT ( COUNT(EmployeeID) FOR qtd IN ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12])) AS pvt

               Por mais que eu não goste de usar o PIVOT, vez ou outra p/ relatório ele é uma boa saída.  Fica aí o exemplo e mesmo que existam outras maneiras de se fazer esse somatório, usar o PIVOT deixa com que o SQL se preocupe com a melhor maneira de recuperar os dados que geralmente costuma ser a saída mais performática!

quarta-feira, 29 de agosto de 2012

DATA TYPE PRECEDENCE


Faaaala pessoal,

               Continuando a ideia de precedência do post anterior hoje irei comentar um pouco sobre as conversões implícitas. Quando estamos realizando operações entre mais de um campo, tipicamente em uma consulta, pode acontecer de que os tipos de dados das colunas sejam diferentes. Neste caso, pode acontecer também que o desenvolvedor, aspirante a DBA, esqueça de fazer a conversão:

               SELECT      1 + '2'

               E aí? Qual será o resultado? Vai dar erro? Bom, esse peguinha é mais rodado do que pratinho de micro-ondas. O que acontece é que no SQL existe uma ordem DATA TYPE PRECEDENCE que converte implicitamente a coluna de menor precedência para a de maior. 

               

Confuso não? Essa matriz esta na documentação da MSDN do CAST e do CONVERT, mas resumindo e colocando os tipos mais comuns temos a seguinte fila:

BINARY < CHAR < VARCHAR < TIMESTAMP < TEXT < BIT < TINYINT < SMALLINT < INT < BIGINT < SMALLMONEY < MONEY < DECIMAL < SMALLDATETIME < DATETIME < XML

            Onde o BINARY possui a menor precedência e o XML a maior. Vale lembrar que quando os tipos de dados não são compatíveis (converter um BIT p/ XML) o SQL vai cuspir um erro de conversão. E se a conversão implícita não é a desejada, pode-se explicitar para atender a sua regra de negocio. Em minha opinião tente fugir de conversões, mas se tiver de fazer, sempre faça explicitamente!

           Link p/ a precedência completa.

            Exame 70-461: Caros, terminei o curso da Microsoft essa semana e agora chegou a hora de marcar a prova. Após esta publicação irei cuidar deste assunto!