首頁 > 資料庫 > mysql教程 > 如何使用 Case 語句根據分割日期範圍和設定名稱動態更新表?

如何使用 Case 語句根據分割日期範圍和設定名稱動態更新表?

Susan Sarandon
發布: 2024-12-27 08:29:10
原創
246 人瀏覽過

How to Dynamically Update a Table Based on Split Date Ranges and Set Names Using a Case Statement?

拆分給定字串並準備Case 語句

要根據特定日期範圍和相應的集合名稱有效更新表,有必要拆分將給定的字串動態地分解為各個組件。這種方法允許處理可變輸入參數並確保更新操作的靈活性。

分割日期範圍與集名稱

  1. 分割日期範圍:

    • 分割日期範圍:
    SELECT unnest(string_to_array(p_dates, ',')) AS date_range;
  2. 分割集名稱:
    類似地,使用逗號(,)作為分割p_sets 參數分隔符。這將產生一組集合名稱。
    SELECT unnest(string_to_array(p_sets, ',')) AS set_name;
    登入後複製

動態案例陳述準備

    一旦確定了日期範圍並設定名稱被分割,可以使用以下內容建構動態case語句步驟:
  1. 循環遍歷日期範圍:
    迭代日期範圍陣列。
  2. 提取範圍邊界:
    使用split_part 從每個範圍中提取開始和結束日期,並將分隔符指定為“to”。
  3. 建立案例子句:
    • 對於每個日期範圍,使用update table_name set set_name 更新的對應集合名稱。
    使用BETWEEN 條件依日期範圍過濾行.

PREPARE upd_tbl AS
UPDATE table_name
SET    set_name = CASE
  WHEN given_date BETWEEN split_part(, 'to', 1)::date
                       AND split_part(, 'to', 2)::date THEN 
  ELSE null
END;
登入後複製
以下程式碼片段示範如何準備動態案例語句:

    其中:
  • $1 是日期範圍的佔位符。
$2 是對應集合名稱的佔位符。

透過以 date_range 和 set_name 作為參數執行這個準備好的語句,可以根據指定的值更新表格日期範圍和設定名稱。

以上是如何使用 Case 語句根據分割日期範圍和設定名稱動態更新表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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