#sql #sql-server
#sql #sql-сервер
Вопрос:
Я хочу разделить строки на несколько строк на основе значения столбца.Например, если у меня есть рабочие часы от 1 до 8 в одной строке, я хочу разделить его на две строки, одну от 1 до 4, а другую от 4 до 8
Table is as follows-
hrs end name class
1 8 s 3
Я хочу разделить ее на
hrs end name class
1 4 s 1
4 8 s 2
Пожалуйста, ответьте
Комментарии:
1. Пожалуйста, объясните логику того, как «1-8» разбивается на две строки. Кроме того, почему
class
изменяется значение.2. откуда я могу знать, что для этого мне нужно разделить ее на два столбца…
3. Это не похоже на проблему, которую вы должны решать в sql..
4. если значение класса равно 3, то мы делим его на две строки, одна из которых содержит 1 класс, а другая содержит 2 и количество часов, т.е. (1-8), также делим его на 2 части
Ответ №1:
Для разделения одной строки на две строки можно использовать следующую концепцию
select 1 as hrs, 4 as end , name, 1 as class from theTable WHERE class=3
UNION
select 4 as hrs, 8 as end, name, 2 as class from theTable WHERE class=3
Конечно, вам нужно параметризовать класс и другие значения.
Комментарии:
1. что, если класс равен 4, u добавит еще один оператор объединения?
2. я не уверен, как вы ожидаете результата, если class = 4. в этом случае может потребоваться добавить дополнительное объединение
3. Что делать, если есть еще одна строка данных?