Maison > base de données > tutoriel mysql > Comment attribuer dynamiquement des noms d'ensemble en fonction de plages de dates dans SQL ?

Comment attribuer dynamiquement des noms d'ensemble en fonction de plages de dates dans SQL ?

Patricia Arquette
Libérer: 2024-12-26 03:49:09
original
763 Les gens l'ont consulté

How to Dynamically Assign Set Names Based on Date Ranges in SQL?

Diviser la chaîne donnée

Pour diviser les dates données représentées par p_dates, utilisez une expression régulière pour extraire les plages de dates entre parenthèses. Par exemple :

SELECT string_to_array(p_dates, '[,]+') AS dates;
Copier après la connexion

Diviser les ensembles donnés

Utilisez une expression régulière similaire pour diviser les ensembles en p_sets en utilisant des virgules comme délimiteur :

SELECT string_to_array(p_sets, '[,]+') AS sets;
Copier après la connexion

Préparation du relevé de cas dynamique

Avec les dates fractionnées et ensembles, construisez une instruction case dynamique à l'aide d'une boucle :

DECLARE
  dates CHAR[],
  sets CHAR[];

BEGIN
  -- Get split dates and sets
  SELECT * INTO dates, sets FROM (
    SELECT string_to_array(p_dates, '[,]+') AS dates, string_to_array(p_sets, '[,]+') AS sets
  );

  -- Loop through each pair of date range and set
  FOR i IN 1..ARRAY_UPPER(sets) LOOP
    -- Construct CASE statement
    CASE WHEN given_dates BETWEEN split_part(dates[i], 'to', 1) AND split_part(dates[i], 'to', 2)
    THEN sets[i]
    END
  END CASE;
END;
Copier après la connexion

Cela générera une instruction CASE dynamique qui attribue des noms d'ensemble en fonction des plages de dates.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal