Si vous avez lu la philosophie qui se cache derrière le projet Fuzible, vous avez vu que lorsque vous requêtez autre chose qu'une base de données, Fuzible prend en charge le langage SQL-92 pour récupérer et manipuler les données de n'importe quelle source.
Cela signifie que vous pouvez requêter un fichier, une API, une boîte mail... en utilisant SQL !
Vous pouvez faire pratiquement tout ce que vous feriez avec une base de données., d'un simple SELECT * à un SELECT contenant des sous-requêtes et des jointures.
Voici une liste de la syntaxe supportée :

Quand vous écrivez une requête, un menu contextuel apparaît et vous fait des suggestions, ce qui s'avère très pratique.
Fonctions supportées :
TRANSFORMATION | |
SUBSTRING | Extrait une chaîne de caractère dans une autre. |
CONCAT | Concatène des données de champs, ou des valeurs |
CONVERT | Force la conversion de données |
CASE field WHEN … THEN … ELSE … END | Conditionnement |
LTRIM, RTRIM | Suppression des espaces avant ou après chaque chaîne de caractères |
ISNULL, COALESCE | Remplace une valeur vide par quelque chose d'autre |
LPAD, RPAD | Padding droite/gauche : ajoute une chaîne de caractères à une autre pour atteindre une taille définie |
LENGTH | Longueur de la chaîne |
CHARINDEX | Cherche un caractère ou une chaîne dans une autre |
LOWER, UPPER | Majuscule ou minuscule |
REPLACE | Remplace une valeur par une autre |
AGGREGATION | |
SUM | The sum from a set of values |
MAX, MIN | The min or max value from a set of values |
AVG | The average from a set of values |
COUNT | The number of rows from a Select statement |
THE BASICS | |
SELECT DISTINCT | Removes duplicates |
SELECT TABLE x | Not a standard SQL-92 function. Allows Fuzible to manipulate data from any of the retrieved data tables |
SELECT TABLE x ONLY | Not a standard SQL-92 function. Allows Fuzible to only retrieve a single table from a multi-datatables result |
LIMIT, TOP | Limits the quantity of retrieved rows |
JOIN (LEFT, OUTER, INNER, RIGHT) | Joins between tables, files, webservices… |
WHERE | Filters |
ORDER BY | Order the result set |
GROUP BY | Aggregations |
UNION | Merge data from multiple SELECT statements. |
ADVANCED FUNCTIONS | |
Fonctions mathématiques sur des transformations SQL | Ex : SELECT SUBSTRING(li_sample, CHARINDEX(li_sample, “-“) + 1, 10) FROM myfile.csv |
Sous-requêtes | Ex : SELECT * FROM (select * FROM myfile.csv) as subQ Ex 2 : SELECT * FROM myfile.csv WHERE id_sample NOT IN (SELECT id FROM myotherfile.csv) |
Fonctions non supportées :
HAVING | Filtrage fonctionnant en complément d'un GROUP BY |
« null » | NULL est une syntaxe purement "base de données" Ex : CASE WHEN x IS NULL THEN doit être écrit ainsi : CASE WHEN x = ” THEN |
Field framing | Vous ne pouvez pas écrire ce genre de chose : Ex : SELECT [myfield] FROM [myfile] Ex2 : SELECT “myfield” FROM “myfile” |
« GETDATE » ou « CURRENT_TIMESTAMP » | Utilisez plutôt les paramètres dynamiques : Ex : SELECT * FROM myfile WHERE year > {%YYYY} |
Une sous-requête pour un champ | Ex : SELECT (select id FROM myfield.csv) as id FROM myotherfile.csv |
Fonctions mathématiques sur des résultats aggrégés | Ex : SELECT COUNT(*) + 10 FROM myfile |