View Full Version : فرمت رشته ای
masoode
چهارشنبه 16 خرداد 1403, 17:48 عصر
سلام دوستان
میخواهم در یک فیلد عبارات ثابت بنویسم با جای خالی مثل:
'You have %A% of %B%'
و با یک فانکشن مثل sprintf در php به عبارت کامل شده تبدیل کنم.
آیا در SQL Server چنین فانکشنی وجود دارد؟ یا باید خودم بسازم؟
mazoolagh
پنج شنبه 17 خرداد 1403, 12:10 عصر
سلام و روز خوش
چیزی که دنبالش هستین بهش میگن string interpolation و در sql هم میتونین به این روشها پیاده کنین:
1- تابع FormatMessage
SELECT FORMATMESSAGE('You have %s of %d.','half',1000) AS [Interpolated String];
155802
DECLARE @A INT=4, @B INT=3, @C INT=2;
SELECT FORMATMESSAGE('%d + %d + %d = %d', @A, @B, @C, (@A+@B+@C)) AS [Interplaoted String];
155803
2- SP سیستمی xp_sprintf:
DECLARE @InputString NVARCHAR(200), @X NVARCHAR(200);
SET @InputString='You have %s of %s.';
EXEC XP_SPRINTF @X OUTPUT, @InputString, 'half', '1000'
SELECT @X AS [Interpolated String];
155804
mazoolagh
پنج شنبه 17 خرداد 1403, 12:13 عصر
رفرنس ها:
FORMATMESSAGE (Transact-SQL) - SQL Server | Microsoft Learn (https://learn.microsoft.com/en-us/sql/t-sql/functions/formatmessage-transact-sql?view=sql-server-ver16)
xp_sprintf (Transact-SQL) - SQL Server | Microsoft Learn (https://learn.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/xp-sprintf-transact-sql?view=sql-server-ver16)
masoode
پنج شنبه 17 خرداد 1403, 12:19 عصر
واقعا لطف کردید
:تشویق: :تشویق: :تشویق: :تشویق:
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.