Implicitní konverze

Funkce pro práci s daty v SQL Serveru

Ana Voicu

Data Engineer

Porovnávání dat

Důležité: pro porovnání dvou hodnot musí být stejného typu.

V opačném případě:

  • SQL Server převede jeden typ na druhý (IMPLICITNĚ)
  • Vývojář data explicitně převede (EXPLICITNĚ)
Funkce pro práci s daty v SQL Serveru

Příklad možných konverzí

SELECT 
    company
    bean_type,
    cocoa_percent
FROM ratings;
Funkce pro práci s daty v SQL Serveru

Příklad možných konverzí

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        |
| ...     | ...        | ...           |
Funkce pro práci s daty v SQL Serveru

Příklad možných konverzí

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        |
| ...     | ...        | ...           |
Funkce pro práci s daty v SQL Serveru

Příklad možných konverzí

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

| company | bean_type  | cocoa_percent |
|---------|------------|---------------|
| ...     | ...        | ...           |
Funkce pro práci s daty v SQL Serveru

Příklad možných konverzí

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


| result                                         | 
|------------------------------------------------|
| Error converting data type varchar to numeric. |
Funkce pro práci s daty v SQL Serveru

Příklad možných konverzí

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        |
| ...     | ...        | ...           |
Funkce pro práci s daty v SQL Serveru

Priorita datových typů

Priorita datových typů

Funkce pro práci s daty v SQL Serveru

Priorita datových typů

Funkce pro práci s daty v SQL Serveru

Implicitní konverze mezi datovými typy

Tabulka implicitních konverzí

Funkce pro práci s daty v SQL Serveru

Vliv implicitní konverze na výkon

  • Implicitní konverze probíhá pro každý řádek dotazu.
  • Implicitní konverzi lze předejít správným návrhem schématu databáze.
Funkce pro práci s daty v SQL Serveru

Lass uns üben!

Funkce pro práci s daty v SQL Serveru

Preparing Video For Download...