View Full Version : مبتدی: merge کردن دو سطر
miladhzz
چهارشنبه 17 آذر 1389, 11:02 صبح
من میخوام دو تا سطری که select کردم رو به هم بچسبونم مثل زیر
type price name
----------------------------
type1 10000 milad
type2 20000 ali
type3 25000 reza
که به صورت زیر در بیاد
type1-type2-type3
یا
milad-ali-reza
لطفا دستور sql این رو به من بدید
Reza_Yarahmadi
چهارشنبه 17 آذر 1389, 12:21 عصر
نيازي به استفاده از كرسر نيست با دستوري مثل دستور زير هم ميتونيد اين كار رو انجام بديد.
Declare @Type nvarchar(max),
@Name nvarchar(max),
@Price nvarchar(max)
Set @Type = (Select Type + '-' From TableName)
Set @Name = (Select Name + '-' From TableName)
Set @Price = (Select Price + '-' From TableName)
Select
@Type as Type,
@Name as Name,
@Price as Price
Rezahak
چهارشنبه 17 آذر 1389, 13:27 عصر
نيازي به استفاده از كرسر نيست با دستوري مثل دستور زير هم ميتونيد اين كار رو انجام بديد.
Declare @Type nvarchar(max),
@Name nvarchar(max),
@Price nvarchar(max)
Set @Type = (Select Type + '-' From TableName)
Set @Name = (Select Name + '-' From TableName)
Set @Price = (Select Price + '-' From TableName)
Select
@Type as Type,
@Name as Name,
@Price as Price
این طوری یک خط تیره اضافی در انتها می افتد که باید پاک شود
Reza_Yarahmadi
چهارشنبه 17 آذر 1389, 13:49 عصر
این طوری یک خط تیره اضافی در انتها می افتد که باید پاک شود
خب با يك Substring ميشه اونو حذف كرد.
اين روش از همه نظر نسبت به استفاده از كرسر مناسبتره ، هم از نظر سادگي كد ، هم از نظر تعداد خط كد ، هم از نظر سرعت و سربار سرور ....
در كل ، تا جايي كه ممكنه بايد از كرسر دوري كرد (مگر مواردي كه چاره ديگه اي وجود نداره)
mohammadjp
چهارشنبه 17 آذر 1389, 14:37 عصر
از کد زیر استفاده کنید
declare @Type nvarchar(max),
@Name nvarchar(max),
@Price nvarchar(max)
Set @Type = (Select Type + '-' From TableName For Xml Path(''))
Set @Type = Substring(@Type, 1, Len(@Type) - 1)
Set @Name = (Select Name + '-' From TableName For Xml Path(''))
Set @Name = Substring(@Name, 1, Len(@Name) - 1)
Set @Price = (Select Price + '-' From TableName For Xml Path(''))
Set @Price = Substring(@Price, 1, Len(@Price) - 1)
Select
@Type as Type,
@Name as Name,
@Price as Price
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.