Implicit konvertering

Funktioner för datamanipulering i SQL Server

Ana Voicu

Data Engineer

Datajämförelse

Tänk på detta: för att jämföra två värden måste de ha samma typ.

Annars:

  • SQL Server konverterar från en typ till en annan (IMPLICIT)
  • Utvecklaren konverterar data explicit (EXPLICIT)
Funktioner för datamanipulering i SQL Server

Exempel på möjliga konverteringar

SELECT 
    company
    bean_type,
    cocoa_percent
FROM ratings;
Funktioner för datamanipulering i SQL Server

Exempel på möjliga konverteringar

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        |
| ...     | ...        | ...           |
Funktioner för datamanipulering i SQL Server

Exempel på möjliga konverteringar

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        |
| ...     | ...        | ...           |
Funktioner för datamanipulering i SQL Server

Exempel på möjliga konverteringar

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

| company | bean_type  | cocoa_percent |
|---------|------------|---------------|
| ...     | ...        | ...           |
Funktioner för datamanipulering i SQL Server

Exempel på möjliga konverteringar

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


| result                                         | 
|------------------------------------------------|
| Error converting data type varchar to numeric. |
Funktioner för datamanipulering i SQL Server

Exempel på möjliga konverteringar

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        |
| ...     | ...        | ...           |
Funktioner för datamanipulering i SQL Server

Datatypsprioritet

Datatypsprioritet

Funktioner för datamanipulering i SQL Server

Datatypsprioritet

Funktioner för datamanipulering i SQL Server

Implicit konvertering mellan datatyper

Tabell över implicit konvertering

Funktioner för datamanipulering i SQL Server

Prestandapåverkan av implicit konvertering

  • Implicit konvertering sker för varje rad i frågan
  • Implicit konvertering kan förhindras med ett väldesignat databasschema.
Funktioner för datamanipulering i SQL Server

Nu kör vi en övning!

Funktioner för datamanipulering i SQL Server

Preparing Video For Download...