13 liens privés
La primitive SQL LIKE modifiée pour utiliser les regex dans du SQL DB2.
Exemple :
Pour rechercher toutes les occurrences du nom de famille Lacan, sans faire attention à la casse
SELECT *
FROM personne
WHERE REGEXP_LIKE (nom_famille, 'Lacan', 'i')
;
Une explication sur le LEFT JOIN en SQL. Et pourquoi le « ON » doit rester simple, avec les filtres et conditions suivants mis dans un WHERE.
Si l'on souhaite ordonner de façon naturelle une colonne avec sqlite (c'est à dire en prenant en compte les accents et les nombres), il y a deux petits hacks à appliquer.
- Le premier consiste à transformer la valeur en décimal, ce qui donne le code :
CAST(colonne AS DECIMAL)
- Le deuxième est de créer une fonction sqlite via pdo, qui va prendre en compte la langue utilisée (ici, le français et ses accents). Cette fonction est à écrire en amont de la requête :
$pdo->sqliteCreateFunction('locale', function ($data, $locale = 'root') { static $collators = array();
if (isset($collators[$locale]) !== true)
{
$collators[$locale] = new \Collator($locale);
}
return $collators[$locale]->getSortKey($data);
}
);
Ainsi, la recherche dans sqlite va donner : `SELECT * FROM matable WHERE id!=? ORDER BY CAST(macolonne AS DECIMAL), ocale(macolonne, 'fr-FR')`
Un programme [...] qui permet d’exécuter des requêtes SQL sur des fichiers texte structurés tels que les CSV, TSV, LTSV, TBLN et JSON.
[...]
C'est une alternative avancée à q et textql, qui offrent également la possibilité d’exécuter des requêtes SQL sur des fichiers CSV et TSV structurés.
[...]
En plus de tous les formats de fichiers qu’il gère, il propose différents formats de sortie tels qu’une sortie brute, en table ASCII, en Markdown…etc.
Quelques liens pour apprendre en s'amusant. Au programme :
- Design
- JavaScript
- Python
- CSS
- SQL
- Regex
- Git
- Linux
- etc.
BASH, MariaDB : Lister les tables d'une base et compter leurs enregistrements · Documentation - Wiki
Comment passer des requêtes SQL en bash.
Astuce ! Utiliser SQLite pour lancer une requête sur un fichier CSV et en récupérer le résultat. Le tout en une seule ligne de commande.
sqlite3 :memory: -cmd '.mode csv' -cmd '.import taxi.csv taxi' 'SELECT passenger_count, COUNT(*), AVG(total_amount) FROM taxi GROUP BY passenger_count'
This uses the special :memory: filename to open an in-memory database. Then it uses two -cmd options to turn on CSV mode and import the taxi.csv file into a table called taxi. Then it runs the SQL query.
Voir aussi https://dinedal.github.io/textql/
Un SQLCODE -153 dans une requête contenant une clause WITH signifie que tous les noms de colonnes ne sont pas uniques. Il faut renommer les colonnes portant le même nom.
Compter le nombre d'occurrence de chaque valeurs dans différentes colonnes (une colonne par valeur).
Avec le calcul du pourcentage.
SELECT DATEENVOIEINE
, SUM( CASE WHEN RETOURINE = 'AVEC REPONSE DELA BNIE' THEN "Qté" ELSE 0 END ) AS AVEC_REPONSE_BNIE
, SUM( CASE WHEN RETOURINE = 'SANS RETOUR' THEN "Qté" ELSE 0 END ) AS SANS_REPONSE_BNIE
, SUM( "Qté" ) AS TOTAL_DEMANDES
, SUM( CASE WHEN RETOURINE = 'AVEC REPONSE DELA BNIE' THEN "Qté" ELSE 0 END ) * 100.0 / SUM( "Qté" ) AS TAUX_RETOUR_BNIE -- % en décimal
, SUM( CASE WHEN RETOURINE = 'AVEC REPONSE DELA BNIE' THEN "Qté" ELSE 0 END ) * 100 / SUM( "Qté" ) AS TAUX_RETOUR_BNIE -- % en entier
FROM DEMANDES_BNIE
GROUP BY DATEENVOIEINE
Comprendre et bien utiliser les indexes des bases de données.
Un beau petit explorateur de base de donnée :-)