Dividir la cadena dada y preparar la declaración del caso

Mesa: nombre de la tabla

create table table_name
(
given_dates timestamp,
set_name varchar
);

Inserción de registros:

insert into table_name values('2001-01-01'),('2001-01-05'),('2001-01-10'),
                 ('2001-01-15'),('2001-01-20'),('2001-01-25'),
                 ('2001-02-01'),('2001-02-05'),('2001-02-10'),
                 ('2001-02-15');

Ahora quiero actualizar set_name para algunas fechas.

Por ejemplo:

Quiero actualizar la tabla de esta manera:

given_dates    set_name 
----------------------
2001-01-01      s1
2001-01-05      s1
2001-01-10      s2
2001-01-15      s2
2001-01-20
2001-01-25
2001-02-01
2001-02-05
2001-02-10
2001-02-15

Nota: Losgiven_dates yset_name son pasar un parámetro porque son dinámicos. Puedo pasar 2 series como se muestra arribas1,s2 o puede pasar 4 juegos según el requisito.

Así que necesito la declaración de caso dinámica para actualizar elset_name.

Dados dos parámetros:

declare p_dates varchar := '2001-01-01to2001-01-05,2001-01-10to2001-01-15';

declare p_sets varchar := 's1,s2';

Bueno, puedo hacer esto usando el siguiente script estático:

Declaración de actualización estática:

update table_name
SET set_name = 
CASE  
when given_dates between '2001-01-01' and '2001-01-05' then 's1'
when given_dates between '2001-01-10' and '2001-01-15' then 's2'
else '' 
end;

La declaración de actualización anterior hace el trabajo pero estáticamente.

Al igual que para actualizar la tabla, quiero preparar solo una declaración de caso que debería ser dinámica y que pueda cambiar según los parámetros(p_dates,p_sets) cambios

Preguntas:

Cómo dividir las fechas dadas que esp_dates? (Yo tengoto palabra clave entre dos fechas).Cómo dividir los conjuntos dados que esp_sets? (Tengo una coma ',' entre dos nombres_conjunto).Cómo preparar una declaración de caso dinámica después de dividir elp_dates yp_sets?

Esta pregunta se relaciona conDeclaración de caso dinámica con SQL Server 2008 R2, que es lo mismo pero para Microsoft SQL Server.

Respuestas a la pregunta(2)

Su respuesta a la pregunta