так что это мой стол -
create table student
(
stu_id int,
s_name nvarchar(max),
s_subject nvarchar(max),
marks varchar(20)
)
и значения
insert into student values(123,'pammy','English','88');
insert into student values(123,'pammy','Maths','56');
insert into student values(124,'watts','Biology','98');
insert into student values(125,'Tom','Physics','90');
insert into student values(125,'Tom','Computer','95');
insert into student values(125,'Tom','ED','75');
так что я сделал это извлеченные данные, которые произошли трижды. и затем объединяет строковые значения, используя sys_connect_by_path.
Мой код -
select stu_id,s_name,
max(sys_connect_by_path(s_subject, ', ' )) s_subject,
max(sys_connect_by_path(marks, ', ' )) marks
from (select stu_id,s_name,s_subject,marks,
row_number() over
(partition by stu_id order by s_subject) rn
from student
)
start with rn = 1
connect by prior rn = rn-1 and prior stu_id = stu_id
group by stu_id,s_name
having stu_id in ( select stu_id
from student
group by stu_id
having count(stu_id) >3 )
order by stu_id,s_name
вывод моего кода -
stu_id s_name s_subject marks
125 Tom ,Physics,Computer,ED, ,90,95,75,
код работает отлично, но я использую запятую как разделитель, и я просто хочу избавиться от запятой в начале и в конце. в столбце s_subject.
что я хочу это
stu_id s_name s_subject marks
125 Tom Physics, Computer, ED 90,95,75
Я попробовал обрезать функцию, но не смог добиться успеха.
Я могу установить соединение sys по пути, если мои данные фиксированы, но здесь данные не фиксированы.
Так что, пожалуйста, помогите ..