تبدیل رشته به سطر با دستور 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)
خروجی اجرای این دستور به شکل زیر است :
این هم یک نمونه کد اسکیوال که از خروجی دستور بالا در حال استفاده است :
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))
از این روش جهت ذخیره سازی آزمون های یک داوطلب ، شماره صندلی های خریداری شده از یک نمایش ، لیست دسترسی های یک کاربر و یا موارد مشابه دیگر می توانید استفاده کنید .