Niejawna konwersja

Funkcje do manipulowania danymi w SQL Server

Ana Voicu

Data Engineer

Porównywanie danych

Ważne: porównywane wartości muszą być tego samego typu.

W przeciwnym razie:

  • SQL Server konwertuje jeden typ na inny (NIEJAWNIE)
  • Programista jawnie konwertuje dane (JAWNIE)
Funkcje do manipulowania danymi w SQL Server

Przykłady możliwych konwersji

SELECT 
    company
    bean_type,
    cocoa_percent
FROM ratings;
Funkcje do manipulowania danymi w SQL Server

Przykłady możliwych konwersji

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        |
| ...     | ...        | ...           |
Funkcje do manipulowania danymi w SQL Server

Przykłady możliwych konwersji

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        |
| ...     | ...        | ...           |
Funkcje do manipulowania danymi w SQL Server

Przykłady możliwych konwersji

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

| company | bean_type  | cocoa_percent |
|---------|------------|---------------|
| ...     | ...        | ...           |
Funkcje do manipulowania danymi w SQL Server

Przykłady możliwych konwersji

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


| result                                         | 
|------------------------------------------------|
| Error converting data type varchar to numeric. |
Funkcje do manipulowania danymi w SQL Server

Przykłady możliwych konwersji

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        |
| ...     | ...        | ...           |
Funkcje do manipulowania danymi w SQL Server

Pierwszeństwo typów danych

Pierwszeństwo typów danych

Funkcje do manipulowania danymi w SQL Server

Pierwszeństwo typów danych

Funkcje do manipulowania danymi w SQL Server

Niejawna konwersja między typami danych

Tabela niejawnych konwersji

Funkcje do manipulowania danymi w SQL Server

Wpływ niejawnej konwersji na wydajność

  • Niejawna konwersja jest wykonywana dla każdego wiersza zapytania.
  • Niejawnej konwersji można uniknąć dzięki odpowiedniemu projektowi schematu bazy danych.
Funkcje do manipulowania danymi w SQL Server

Czas na ćwiczenia!

Funkcje do manipulowania danymi w SQL Server

Preparing Video For Download...