首頁 > 資料庫 > 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板