لطفاً راهنمایی نمایید چگونه می توان محتویات یک جدول را بصورت یک رشته ، یعنی پشت سرهم داشته باشیم . مثلاً : ریاضی - فیزیک - شیمی
نه اینچنین : ریاضی
فیزیک
شیمی
لطفاً راهنمایی نمایید چگونه می توان محتویات یک جدول را بصورت یک رشته ، یعنی پشت سرهم داشته باشیم . مثلاً : ریاضی - فیزیک - شیمی
نه اینچنین : ریاضی
فیزیک
شیمی
use northwind
go
declare @var1 nvarchar(4000)
set @var1=''
select @var1=@var1+isnull(country,'')+'-' from customers
select @var1
خیلی جالبه
من این امکان رو تو اوراکل ندیدم
اگه دوستان اطلاعی دارن یه ندا بدن
سلام hmm عزیز
امکان بالا تو اوراکل وجود داره، هم با استفاده از PL/SQL و هم با استفاده از SQL.
مثال زیر یکی از چندین روش دسترسی به اطلاعات به شکل فوق هستش :
select max(decode(name_seq,1,last_name)) || ' ' ||
max(decode(name_seq,2,last_name)) || ' ' ||
max(decode(name_seq,3,last_name)) || ' ' ||
max(decode(name_seq,4,last_name)) || ' ' ||
max(decode(name_seq,5,last_name)) || ' ' ||
--تا 100 یا بیشتر ادامه بده تا همه ستونهای مرتبط در یه سطر قرار بگیرن
max(decode(name_seq,100,last_name)) emp_list
from ( select last_name,
row_number() over (partition by 1 order by 1) name_seq
from employees
)
order by 1;
این همیشه درست جواب میده ولی یه کمی کدنویسیش زیاده، باید به تعداد سطرهای پیش فرضت تابع decode رو تکرار کنی .
روشهای دیگه ای هم داره.
امیدوارم بدردت بخوره.
سلام
اینم الان نوشتم، اینم درسته تستش کردم :
with
ordemp as (select last_name from employees order by department_id),
seqemp as (select rownum rn, ordemp.last_name from ordemp),
paths as (select sys_connect_by_path(last_name,',') concat, rn
from seqemp o
connect by rn = prior rn + 1
start with rn = 1
)
select concat
from paths p
where p.rn = (select count(last_name) from employees);
مشکل استفاده از تابع decode رو هم نداره.
امیدوارم بدرت بخوره.