ホームページ >データベース >mysql チュートリアル >SQL の日付範囲に基づいてセット名を動的に割り当てる方法は?

SQL の日付範囲に基づいてセット名を動的に割り当てる方法は?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-26 03:49:09771ブラウズ

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

指定された文字列の分割

p_dates で表される指定された日付を分割するには、正規表現を使用して括弧内の日付範囲を抽出します。例:

SELECT string_to_array(p_dates, '[,]+') AS dates;

指定されたセットの分割

同様の正規表現を使用して、区切り文字としてカンマを使用して p_sets 内のセットを分割します。

SELECT string_to_array(p_sets, '[,]+') AS sets;

動的ケースの準備ステートメント

分割された日付とセットを使用して、ループを使用して動的 case ステートメントを構築します。

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;

これにより、日付に基づいてセット名を割り当てる動的 CASE ステートメントが生成されます。範囲。

以上がSQL の日付範囲に基づいてセット名を動的に割り当てる方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。