Conversão implícita

Funções para manipular dados no SQL Server

Ana Voicu

Data Engineer

Comparação de dados

Lembre-se: para comparar dois valores, eles precisam ser do mesmo tipo.

Caso contrário:

  • O SQL Server converte de um tipo para outro (IMPLÍCITA)
  • Você converte os dados de forma explícita (EXPLÍCITA)
Funções para manipular dados no SQL Server

Exemplo de possíveis conversões

SELECT 
    company
    bean_type,
    cocoa_percent
FROM ratings;
Funções para manipular dados no SQL Server

Exemplo de possíveis conversões

SELECT 
    company
    bean_type,
    cocoa_percent
FROM ratings
WHERE cocoa_percent > 0.5; 

| company | bean_type  | cocoa_percent |
|---------|------------|---------------|
| Amedei  | Blend      | 0.7000        |
| Bonnat  | Trinitario | 0.7500        |
| ...     | ...        | ...           |
Funções para manipular dados no SQL Server

Exemplo de possíveis conversões

SELECT 
    company
    bean_type,
    cocoa_percent
FROM ratings
WHERE cocoa_percent > -2; 

| company | bean_type  | cocoa_percent |
|---------|------------|---------------|
| Amedei  | Blend      | 0.7000        |
| Bonnat  | Trinitario | 0.7500        |
| ...     | ...        | ...           |
Funções para manipular dados no SQL Server

Exemplo de possíveis conversões

SELECT 
    company
    bean_type,
    cocoa_percent
FROM ratings
WHERE cocoa_percent > GETDATE();

| company | bean_type  | cocoa_percent |
|---------|------------|---------------|
| ...     | ...        | ...           |
Funções para manipular dados no SQL Server

Exemplo de possíveis conversões

SELECT 
    company
    bean_type,
    cocoa_percent
FROM ratings
WHERE cocoa_percent > 'A';


| result                                         | 
|------------------------------------------------|
| Error converting data type varchar to numeric. |
Funções para manipular dados no SQL Server

Exemplo de possíveis conversões

SELECT 
    company
    bean_type,
    cocoa_percent
FROM ratings
WHERE cocoa_percent > '0.5';
| company | bean_type  | cocoa_percent |
|---------|------------|---------------|
| Amedei  | Blend      | 0.7000        |
| Bonnat  | Trinitario | 0.7500        |
| ...     | ...        | ...           |
Funções para manipular dados no SQL Server

Precedência de tipos de dados

Precedência de tipos de dados

Funções para manipular dados no SQL Server

Precedência de tipos de dados

Funções para manipular dados no SQL Server

Conversão implícita entre tipos de dados

Tabela de conversão implícita

Funções para manipular dados no SQL Server

Impacto de desempenho da conversão implícita

  • A conversão implícita é feita para cada linha da consulta
  • Um bom design de esquema evita conversão implícita.
Funções para manipular dados no SQL Server

Vamos praticar!

Funções para manipular dados no SQL Server

Preparing Video For Download...