使用分割日期和集合更新的動態案例語句
問題:
給
給問題:給
給給定兩個參數p_dates 和p_sets,分別包含日期範圍和集合名稱,目標是準備一條動態SQL case語句,根據給定的日期範圍使用適當的集名稱更新表的 set_name 欄位。
解決方案:SELECT unnest(string_to_array(p_dates, ',')) AS date_range;
1.分割日期:
要將p_dates 參數分割為各個日期範圍,請使用string_to_array() 函數並以逗號(,)作為分隔符號:SELECT unnest(string_to_array(p_sets, ',')) AS set_name;
2.分割集:
類似地,要將p_sets 參數分割為單獨的集名稱,請使用相同的技術:CASE WHEN given_dates BETWEEN split_part(date_range, 'to', 1)::date AND split_part(date_range, 'to', 2)::date THEN set_name ELSE NULL END
3。準備動態 Case 語句:
使用分割日期和集合,將它們動態連接成一個 case 語句:UPDATE table_name SET set_name = ( CASE WHEN given_dates BETWEEN split_part(date_range, 'to', 1)::date AND split_part(date_range, 'to', 2)::date THEN set_name ELSE NULL END ) FROM split_dates JOIN split_sets ON 1 = 1;
實現:
要更新table_name表,請使用以下SQL語句:好處:這種動態方法允許根據更改的參數進行靈活更新,消除了靜態case 語句的需要,並提供了更通用的解決方案用於日期範圍和設定操作。以上是如何使用 Case 語句根據日期範圍動態更新表的集名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!