Conversione implicita

Funzioni per manipolare i dati in SQL Server

Ana Voicu

Data Engineer

Confronto dati

Ricorda: per confrontare due valori, devono essere dello stesso tipo.

Altrimenti:

  • SQL Server converte da un tipo all'altro (IMPLICITA)
  • Lo sviluppatore converte i dati (ESPlicita)
Funzioni per manipolare i dati in SQL Server

Esempio di possibili conversioni

SELECT 
    company
    bean_type,
    cocoa_percent
FROM ratings;
Funzioni per manipolare i dati in SQL Server

Esempio di possibili conversioni

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        |
| ...     | ...        | ...           |
Funzioni per manipolare i dati in SQL Server

Esempio di possibili conversioni

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        |
| ...     | ...        | ...           |
Funzioni per manipolare i dati in SQL Server

Esempio di possibili conversioni

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

| company | bean_type  | cocoa_percent |
|---------|------------|---------------|
| ...     | ...        | ...           |
Funzioni per manipolare i dati in SQL Server

Esempio di possibili conversioni

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


| result                                         | 
|------------------------------------------------|
| Error converting data type varchar to numeric. |
Funzioni per manipolare i dati in SQL Server

Esempio di possibili conversioni

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        |
| ...     | ...        | ...           |
Funzioni per manipolare i dati in SQL Server

Precedenza dei tipi di dato

Precedenza dei tipi di dato

Funzioni per manipolare i dati in SQL Server

Precedenza dei tipi di dato

Funzioni per manipolare i dati in SQL Server

Conversione implicita tra tipi di dato

Tabella delle conversioni implicite

Funzioni per manipolare i dati in SQL Server

Impatto prestazionale della conversione implicita

  • La conversione implicita viene eseguita per ogni riga della query
  • Si evita con un buon design dello schema del database.
Funzioni per manipolare i dati in SQL Server

Passiamo alla pratica !

Funzioni per manipolare i dati in SQL Server

Preparing Video For Download...