Memisahkan Rentetan Input
Untuk memisahkan rentetan input (tarikh dan set), kita boleh menggunakan teknik berikut:
Tarikh (p_dates): Gunakan string_to_array() berfungsi untuk mencipta tatasusunan julat tarikh daripada rentetan tarikh. Contohnya:
SELECT string_to_array('2001-01-01to2001-01-05,2001-01-10to2001-01-15', ',')
Set (p_sets): Begitu juga, gunakan fungsi string_to_array() untuk memisahkan rentetan set kepada tatasusunan nama set. Contohnya:
SELECT string_to_array('s1,s2,s3,s4', ',')
Menyediakan Penyata Kes Dinamik
Setelah tatasusunan ini dicipta, kita boleh menggunakannya untuk menjana pernyataan kes dinamik menggunakan gabungan pernyataan CASE WHEN dan SELECT. Contohnya:
CASE WHEN given_dates BETWEEN date_ranges[1] AND date_ranges[2] THEN set_names[1] WHEN given_dates BETWEEN date_ranges[3] AND date_ranges[4] THEN set_names[2] ... ELSE NULL END
Di sini, julat_tarikh dan nama_set ialah tatasusunan yang dicipta daripada p_dates dan p_sets masing-masing.
Pernyataan kes dinamik ini kemudiannya boleh digunakan untuk mengemas kini lajur set_name berdasarkan yang ditentukan julat tarikh dan tetapkan nama.
Atas ialah kandungan terperinci Bagaimana untuk Memisahkan dan Menggunakan Rentetan Input untuk Penyata Kes Dinamik dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!