slogan3

Help me begrijpen en gebruiken van SQL functies voor datatransformatie

description

Met deze prompt kan de gebruiker leren hoe hij SQL functies kan inzetten om data binnen query's effectief te transformeren en manipuleren. Dit helpt bij het schrijven van complexere en efficiëntere SQL, en voorkomt handmatige data-aanpassingen buiten de database. De gebruiker ontvangt specifieke voorbeelden en uitleg aangepast aan zijn query of dataset, wat het leerproces versnelt en praktische toepassing vergroot.

prompt

Help me met het gebruik van SQL functies om data te transformeren binnen mijn query's. Beschrijf welke functies ik kan gebruiken voor gegevensman ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een overzicht van SQL-functies die je kunt gebruiken voor gegevensmanipulatie binnen je query's, afgestemd op je voorbeelddataset: **1. Stringbewerking:** - **CONCAT()**: Voegt meerdere tekstwaarden samen. ```sql SELECT CONCAT(klant_id, '_', order_id) AS klant_order_code FROM bestellingen; ``` - **UPPER() / LOWER()**: Zet tekst om in hoofd- of kleine letters. ```sql SELECT UPPER(klant_id) AS klant_id_hoofdletters FROM bestellingen; ``` - **SUBSTRING()**: Haalt een deel van een tekst op. ```sql SELECT SUBSTRING(klant_id, 1, 3) AS klanten_code FROM bestellingen; ``` **2. Datumformattering:** - **DATE_FORMAT()** (MySQL) of **TO_CHAR()** (PostgreSQL): Formatteer datums naar een leesbaarder formaat. ```sql -- Voor MySQL SELECT DATE_FORMAT(order_datum, '%d-%m-%Y') AS order_datum_nieuw FROM bestellingen; -- Voor PostgreSQL SELECT TO_CHAR(order_datum, 'DD-MM-YYYY') AS order_datum_nieuw FROM bestellingen; ``` - **DATEDIFF()**: Berekent het aantal dagen tussen twee datums. ```sql SELECT DATEDIFF(CURRENT_DATE, order_datum) AS dagen_geleden FROM bestellingen; ``` **3. Numerieke berekeningen:** - **Aritmetische operators (+, -, *, /)**: Voor basisberekeningen. ```sql SELECT totaal_bedrag * 1.21 AS totaal_bedrag_incl_btw FROM bestellingen; ``` - **ROUND()**: Rond getallen af. ```sql SELECT ROUND(totaal_bedrag, 2) AS totaal_bedrag_afgerond FROM bestellingen; ``` - **SUM()**, **AVG()**, **MIN()**, **MAX()**: Aggregatiefuncties voor samenvatting. ```sql SELECT SUM(totaal_bedrag) AS totaal_omzet FROM bestellingen; ``` **Voorbeeldquery met enkele functies:** ```sql SELECT order_id, klant_id, DATE_FORMAT(order_datum, '%d-%m-%Y') AS order_datum_nieuw, ROUND(totaal_bedrag * 1.21, 2) AS bedrag_incl_btw, CONCAT('Klant ', LOWER(klant_id)) AS klant_info FROM bestellingen; ``` Deze functies helpen je om je gegevens te transformeren en inzichtelijker te maken binnen je SQL-query's.
provider: deepseek
model: deepseek-chat
Zeker! Hier zijn de belangrijkste SQL-functies voor gegevensmanipulatie, toegepast op jouw voorbeeldquery: ## Stringbewerking (STRING FUNCTIONS) ```sql -- Hoofdletters en kleine letters SELECT order_id, UPPER(klant_id) AS klant_id_upper, LOWER(klant_id) AS klant_id_lower, order_datum, totaal_bedrag FROM bestellingen; -- String samenvoegen en lengte SELECT CONCAT('Bestelling ', order_id, ' - Klant ', klant_id) AS beschrijving, LENGTH(klant_id) AS klant_id_lengte, order_datum, totaal_bedrag FROM bestellingen; -- Substrings en trimmen SELECT order_id, SUBSTRING(klant_id, 1, 3) AS klant_prefix, TRIM(klant_id) AS klant_id_trimmed, order_datum, totaal_bedrag FROM bestellingen; ``` ## Datumformattering (DATE FUNCTIONS) ```sql -- Datumopmaak SELECT order_id, klant_id, DATE_FORMAT(order_datum, '%d-%m-%Y') AS datum_nl, DATE_FORMAT(order_datum, '%Y/%m/%d') AS datum_iso, order_datum, totaal_bedrag FROM bestellingen; -- Datumberekeningen SELECT order_id, klant_id, order_datum, DATE_ADD(order_datum, INTERVAL 30 DAY) AS leverdatum, DATEDIFF(CURDATE(), order_datum) AS dagen_oud, totaal_bedrag FROM bestellingen; -- Datumonderdelen SELECT order_id, klant_id, YEAR(order_datum) AS order_jaar, MONTH(order_datum) AS order_maand, DAY(order_datum) AS order_dag, totaal_bedrag FROM bestellingen; ``` ## Numerieke berekeningen (NUMERIC FUNCTIONS) ```sql -- Basisberekeningen SELECT order_id, klant_id, order_datum, totaal_bedrag, ROUND(totaal_bedrag, 2) AS afgerond_bedrag, totaal_bedrag * 1.21 AS bedrag_met_btw, FLOOR(totaal_bedrag) AS naar_beneden_afgerond FROM bestellingen; -- Statistieken en aggregatie SELECT order_id, klant_id, order_datum, totaal_bedrag, AVG(totaal_bedrag) OVER() AS gemiddelde_alle_orders, SUM(totaal_bedrag) OVER(PARTITION BY klant_id) AS totaal_per_klant FROM bestellingen; ``` ## Gecombineerd voorbeeld ```sql SELECT order_id, CONCAT('KL-', UPPER(klant_id)) AS klant_code, DATE_FORMAT(order_datum, '%d %M %Y') AS besteldatum, ROUND(totaal_bedrag * 1.21, 2) AS totaal_inclusief_btw, CASE WHEN totaal_bedrag > 1000 THEN 'Groot' WHEN totaal_bedrag > 500 THEN 'Medium' ELSE 'Klein' END AS order_grootte FROM bestellingen; ``` **Belangrijke opmerking**: De exacte functienamen kunnen per database (MySQL, PostgreSQL, SQL Server) iets verschillen. Controleer altijd de documentatie van jouw specifieke databasesysteem.