|
|
#1 (permalink) |
|
Üyelik Tarihi: 01.11.2000
Yer: İstanbul
Yaş: 27
Mesaj: 713
|
sql server'da rowlar arasında concat işlemi
SQL server üzerinde aralarında one-to-many ilişkisi olan iki tablom var. Şöyle diyelim: Bir tabloda araba markaları diğer tabloda o markanın modelleri var. Kod:
markalar: id - isim
1- opel
2- mercedes
modeller: marka_id - isim
1- astra
1 - vectra
2 - slx
2 - kompressor
1|opel|astra,vectra 2|mercedes|slx,kompressor gibi bir sonuç döndürmek. Mesele rowları bir çeşit concatenation işlemine tabi tutmak. SQL server'da concat fonksiyonu yok, bu işlem + ile yapılıyor. Benzer bir sorun ile karşılaşan var mı,çözümü bilen?
__________________
life is better without braces |
|
|
|
|
|
#2 (permalink) |
|
Üyelik Tarihi: 06.07.2001
Yer: Ankara
Yaş: 33
Mesaj: 679
|
Re: sql server'da rowlar arasında concat işlemi
neden join ile yapmıyorsun? bir şey kaçırdım galiba
__________________
uzaytek.com |
|
|
|
|
|
#3 (permalink) |
|
Üyelik Tarihi: 01.11.2000
Yer: İstanbul
Yaş: 27
Mesaj: 713
|
Re: sql server'da rowlar arasında concat işlemi
Join ile olacak birşey değil bu. Mesele rowları bir kolon içinde birleştirmek.
UDF ile olur aslında, yapınca paste ederim buraya fonksiyonu.
__________________
life is better without braces |
|
|
|
|
|
#4 (permalink) |
|
Üyelik Tarihi: 09.12.2000
Yer: istanbul
Yaş: 30
Mesaj: 1,951
|
Re: sql server'da rowlar arasında concat işlemi
fetch ile de alabilirsin, ama anlamsız da olabilir tabi bu
__________________
"oturduğum mahallenin yolları çamurluydu, boyalı ayakkabı giysem bile, o yollardan geçtikten sonra çamurlanmamaları mümkün değildi. hayatım da böyle." yılmaz güney http://www.sipidik.com |
|
|
|
|
|
#6 (permalink) |
|
Re: sql server'da rowlar arasında concat işlemi
Stalker yapmak istediği sanırsam nested table. yani bir datasetin bir filedına başka bir database deki verileri almak. Bunu ben genellikle BCB ile programlama yaparken kullanıyorum. 1. Grid de ana veriler oluyor yani mercedes veya opel gibi İkinci Grid ise alt modelleri göstermekte kullanıyorum. Herhangi bir sorgu yapmama gerek kalmadan. 1. Griddeki değeri değiştirmemle 2. grid otomatikman değişiyor. Fakat bunu salt SQL le değilde Dataset, Datasetprovider ve clientdataset objelerini kullarak yapıyorum.
__________________
St. Nonstop Elektronik ve Haberleşme Mühendisi Aziz DURMAZ |
|
|
|
|
|
|
#7 (permalink) |
|
Üyelik Tarihi: 09.12.2000
Yer: istanbul
Yaş: 30
Mesaj: 1,951
|
Re: sql server'da rowlar arasında concat işlemi
Table 1:
Kod:
CREATE TABLE [tbl_marka] ( [id] [int] IDENTITY (1, 1) NOT NULL , [marka] [varchar] (50) COLLATE Turkish_CI_AS NULL , CONSTRAINT [PK_tbl_merka] PRIMARY KEY CLUSTERED ( [id] ) ON [PRIMARY] ) ON [PRIMARY] GO Kod:
CREATE TABLE [tbl_model] ( [id] [int] IDENTITY (1, 1) NOT NULL , [marka_id] [int] NOT NULL , [model] [varchar] (50) COLLATE Turkish_CI_AS NULL , CONSTRAINT [PK_tbl_model] PRIMARY KEY CLUSTERED ( [id] ) ON [PRIMARY] ) ON [PRIMARY] GO Kod:
CREATE TABLE #tmpTable ( mID numeric, marka varchar(50), modeller varchar(7950)) DECLARE @RETURN varchar(8000), @mID numeric, @mName varchar(50), @modName varchar(50) DECLARE fMarka CURSOR FOR SELECT id, marka FROM tbl_marka OPEN fMarka WHILE (0=0) BEGIN FETCH NEXT FROM fMarka INTO @mID, @mName IF @@FETCH_STATUS<>0 BREAK DECLARE fModel CURSOR FOR SELECT model FROM tbl_model WHERE marka_id = @mID OPEN fModel SET @RETURN = '' WHILE (0=0) BEGIN FETCH NEXT FROM fModel INTO @modName IF @@FETCH_STATUS<>0 BREAK IF @RETURN <> '' SET @RETURN = @RETURN + ', ' SET @RETURN = @RETURN + @modName END CLOSE fModel DEALLOCATE fModel INSERT INTO #tmpTable (mID, marka, modeller) VALUES (@mID, @mName, RTrim(@RETURN)) END CLOSE fMarka DEALLOCATE fMarka SELECT * FROM #tmpTable DROP TABLE #tmpTable GO
__________________
"oturduğum mahallenin yolları çamurluydu, boyalı ayakkabı giysem bile, o yollardan geçtikten sonra çamurlanmamaları mümkün değildi. hayatım da böyle." yılmaz güney http://www.sipidik.com |
|
|
|
| Sponsorlu Bağlantılar | |
|
Zoque.Forum
Reklam
|
|
Zoque'a hoşgeldiniz!