PDA

View Full Version : تبدیل یک column به varchar با T-SQL



javad3151
یک شنبه 28 مرداد 1386, 08:34 صبح
سلام
من میخوام مقادیر یک فیلد عددی رو به یک رشته متنی تبدیل کنم (1,4,87,5,67,98) تا از اون در یک Query استفاده کنم
غیر از Cursor راه دیگری هم هست (چون سرعت Cursor خیلی خیلی پایینه)؟

AminSobati
یک شنبه 28 مرداد 1386, 09:17 صبح
سلام،
اگر صرفا تبدیل به varchar مورد نظر باشه، میتونین از CAST استفاده کنین:


SELECT CAST(MyCol AS VARCHAR(20)),* FROM MyTable

اما اگر تغییرات خاصی لازم داره، برای راحتی کار میتونین تابع بنویسین

javad3151
یک شنبه 28 مرداد 1386, 11:04 صبح
خیلی ممنون که راهنمایی کردید ، ولی خروجی کار باید text باشه نه table


My code:
declare @studentid varchar(4000)
set @studentid=(SELECTtop 5 CAST(stdntid ASVARCHAR(20))FROM stdnt)

Err msg:
Msg 512, Level 16, State 1, Line 2
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.


و بعد از این رشته ( که حاوی تعدادی ID هست ) در چند کوئری دیگه استفاده می کنم

AminSobati
یک شنبه 28 مرداد 1386, 11:30 صبح
Query شما 5 رکورد انتخاب میکنه، چجوری باید توی یک Variable جا بشن؟!

پویا
یک شنبه 28 مرداد 1386, 13:03 عصر
من منظورشو فهمیدم
می خواد Id دانش آموز ها رو به هم بچسبونه

اول بگو چرا می خوای این کارو بکنی؟ شاید راه بهتری داشته باشه

ولی به هر حال فکر نمی کنم راهی جز استفاده از Cursor داشته باشی

AminSobati
یک شنبه 28 مرداد 1386, 14:57 عصر
USE Northwind
GO

DECLARE @X VARCHAR(8000)
SET @X=''
SELECT TOP 10 @X=@X+LTRIM(STR(OrderID))+',' FROM Orders
PRINT @X
GO