首頁 >資料庫 >mysql教程 >如何在 SQL 中根據日期範圍動態指派集名稱?

如何在 SQL 中根據日期範圍動態指派集名稱?

Patricia Arquette
Patricia Arquette原創
2024-12-26 03:49:09803瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn