تبدیل رشته به سطر با دستور Select

تعداد بازدید ها : 14 بازدید
 تبدیل رشته به سطر با دستور Select

برخی مواقع نیاز هست که یک رشته متنی که حاوی تعدادی عدد هست را به سطر تبدیل کنیم به نوعی که قابلیت اتصال (Join) دادن با سایر جداول را داشته باشد . قطعه کد زیر مثالی از این مورد را ارائه می دهد :

DECLARE @TestCode NVARCHAR(MAX) = '1,2,3,4,5,6,7,8,9'

DECLARE @Xparam XML;
SELECT
  @Xparam = CAST('<i>' + REPLACE(@TestCode, ',', '</i><i>') + '</i>' AS XML)

SELECT
  x.i.value('.', 'INT') AS TestCode
FROM @Xparam.nodes('//i') x (i)

خروجی اجرای این دستور به شکل زیر است :

Xparam result

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

DECLARE @TestCode NVARCHAR(MAX) = '1,2,3,4,5,6,7,8,9'

DECLARE @Xparam XML;
SELECT
  @Xparam = CAST('<i>' + REPLACE(@TestCode, ',', '</i><i>') + '</i>' AS XML)

SELECT
  StudentinTest.TestCode
FROM StudentInTest
WHERE StudentInTest.TestCode IN (SELECT
    x.i.value('.', 'INT')
  FROM @Xparam.nodes('//i') x (i))

از این روش جهت ذخیره سازی آزمون های یک داوطلب ، شماره صندلی های خریداری شده از یک نمایش ، لیست دسترسی های یک کاربر و یا موارد مشابه دیگر می توانید استفاده کنید .

می خوانم   ویجت TextFormField
محمدمجتبی جوارشکیان

محمدمجتبی جوارشکیان

من محمدمجتبی جوارشکیان ، کارشناس IT و فعال اجتماعی هستم و در حوزه معماری ، طراحی ، تحلیل گری ، مدلسازی و توسعه ی محیط های نرم افزاری فعالیت دارم. همانند سایر کارشناسان IT در تلاشم تا دنیا جای زیباتری برای زندگی باشد. بسیار خوشحال می شوم من را از انتقادات ، پیشنهادات و نظرات خود مطلع فرمایید. آدرس ایمیل : mjfakhr@yahoo.com

ارسال یک پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نوزده − دوازده =