Eingabezeichenfolgen aufteilen
Um die Eingabezeichenfolgen (Daten und Sätze) aufzuteilen, können wir die folgenden Techniken verwenden:
Daten (p_dates): Verwenden Sie die Funktion string_to_array() um aus der Datumszeichenfolge ein Array von Datumsbereichen zu erstellen. Zum Beispiel:
SELECT string_to_array('2001-01-01to2001-01-05,2001-01-10to2001-01-15', ',')
Sets (p_sets): Verwenden Sie in ähnlicher Weise die Funktion string_to_array(), um die Sets-Zeichenfolge in ein Array von Set-Namen aufzuteilen. Zum Beispiel:
SELECT string_to_array('s1,s2,s3,s4', ',')
Dynamische Case-Anweisung vorbereiten
Sobald diese Arrays erstellt sind, können wir sie zum Generieren der dynamischen Case-Anweisung verwenden unter Verwendung einer Kombination aus CASE WHEN- und SELECT-Anweisungen. Zum Beispiel:
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
Hier sind date_ranges und set_names die aus p_dates bzw. p_sets erstellten Arrays.
Diese dynamische Case-Anweisung kann dann verwendet werden, um die Spalte „set_name“ basierend auf dem angegebenen zu aktualisieren Datumsbereiche und Setnamen.
Das obige ist der detaillierte Inhalt vonWie kann man Eingabezeichenfolgen für dynamische Case-Anweisungen effizient aufteilen und verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!