PDA

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