Data met verschillende typen converteren

Gegevens opschonen in SQL Server-databases

Miriam Antona

Software Engineer

Introductie tot ongewenste datatypen

SELECT * FROM series
WHERE rating BETWEEN 0 AND 10
SELECT * FROM series
WHERE rating >= 0 AND rating <= 10
| id  | name            | rating | ... |
|-----|-----------------|--------|-----|
| 1   | Adventure Time  | 8.4    | ... |
| 2   | Dexter          | 8.6    | ... |
| 3   | Futurama        | 9.2    | ... |
| 4   | Game of Thrones | 9.3    | ... |
| ... | ...             | ...    | ... |
Gegevens opschonen in SQL Server-databases

Introductie tot ongewenste datatypen

SELECT * FROM series
WHERE rating BETWEEN 0 AND 10
SELECT * FROM series
WHERE rating >= 0 AND rating <= 10
| id  | name            | rating | ... |
|-----|-----------------|--------|-----|
| 1   | Adventure Time  | 8.4    | ... |
| 2   | Dexter          | 8.6    | ... |
| 3   | Futurama        | 9.2    | ... |
| 4   | Game of Thrones | 9.3    | ... |
| ... | ...             | ...    | ... |
Column_name Type
id int
name varchar
premiered date
official_site varchar
contact_number varchar
rating float
summary varchar
Gegevens opschonen in SQL Server-databases

Introductie tot ongewenste datatypen

Column_name Type
id int
name varchar
premiered date
official_site varchar
contact_number varchar
rating varchar
summary varchar
Gegevens opschonen in SQL Server-databases

Ongewenste datatypen - voorbeelden

SELECT * FROM series
WHERE rating BETWEEN 0 AND 10
SELECT * FROM series
WHERE rating >= 0 AND rating <= 10
Conversie mislukt bij het converteren van de varchar-waarde '8.4' naar het gegevenstype int.
Gegevens opschonen in SQL Server-databases

Ongewenste datatypen - voorbeelden

SELECT AVG(rating)
FROM series
Operand-gegevens type varchar is ongeldig voor de AVG-operator.
Gegevens opschonen in SQL Server-databases

Typeconversieproblemen oplossen

SELECT * FROM series
WHERE CAST(rating AS FLOAT) BETWEEN 0 AND 10
SELECT * FROM series
WHERE CONVERT(FLOAT, rating) BETWEEN 0 AND 10
| id  | name            | premiered  | contact_number | rating | ... |
|-----|-----------------|------------|----------------|--------|-----|
| 1   | Adventure Time  | 2010-04-05 | 555-906-8845   | 8.4    | ... |
| 2   | Dexter          | 2006-01-10 | 555-156-8845   | 8.6    | ... |
| 3   | Futurama        | 1999-03-28 | 555-210-9951   | 9.2    | ... |
| 4   | Game of Thrones | 2011-04-17 | 555-543-6641   | 9.3    | ... |
| ... | ...             | ...        | ...            | ...    | ... |
Gegevens opschonen in SQL Server-databases

Typeconversieproblemen oplossen

SELECT AVG(CAST(rating AS FLOAT)) AS rating_casted
FROM series
WHERE CAST(rating AS FLOAT) BETWEEN 0 AND 10
SELECT AVG(CONVERT(FLOAT, rating)) AS rating_casted
FROM series
WHERE CONVERT(FLOAT, rating) BETWEEN 0 AND 10
| rating_casted    |
|------------------|
| 8,62857142857143 |
Gegevens opschonen in SQL Server-databases

Laten we oefenen!

Gegevens opschonen in SQL Server-databases

Preparing Video For Download...