Utilisez le pivot SQL dynamique pour la conversion de données, le traitement nul ou la chaîne vide
Cet article présente comment convertir les données du tableau au format de la perspective de catégorie, où le poste est représenté comme une chaîne nulle ou vide. Ceci peut être implémenté par Dynamic SQL Pivot Query.
Utilisez un pivot pour effectuer une conversion dynamique
Les étapes suivantes décrivent le processus de création d'une requête de pivot dynamique:
- Créez une table temporaire: Créez une table temporaire pour stocker les données d'origine et définir les colonnes nécessaires.
Générer la liste dynamique: - différentes catégories sont utilisées pour interroger avec la sous-femerie et les connecter aux chaînes avec des virgules séparées.
Créer des requêtes de pivot:
Les listes générées sont utilisées comme paramètres de pivot pour créer une requête de pivot. - La fonction de polymérisation récupère la valeur maximale de chaque catégorie.
Exécutez la requête:
MAX()
Effectuez des requêtes de pivot dynamique pour générer le résultat après la conversion.
-
Résultats
La table générée comprendra une colonne qui représente la seule catégorie, et la date est utilisée comme ligne. La valeur vide peut être traitée en fonction de la sortie requise via la chaîne nulle ou vide.
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX);
SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.category)
FROM temp c
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT date, ' + @cols + ' from
(
select date
, amount
, category
from temp
) x
pivot
(
max(amount)
for category in (' + @cols + ')
) p '
execute(@query)
Copier après la connexion
Exemple de résultats:
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!