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

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

Patricia Arquette
リリース: 2024-12-26 03:49:09
オリジナル
765 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート