যদি আপনার ন্যূনতম কোড সহ সাধারণ ক্ষেত্রে দ্রুত অ্যাডহক সমাধানের প্রয়োজন হয়, তবে এই পুনরাবৃত্ত সিটিই দ্বি-লাইনার এটি করবে:
DECLARE @s VARCHAR(200) = ',1,2,,3,,,4,,,,5,'
;WITH
a AS (SELECT i=-1, j=0 UNION ALL SELECT j, CHARINDEX(',', @s, j + 1) FROM a WHERE j > i),
b AS (SELECT SUBSTRING(@s, i+1, IIF(j>0, j, LEN(@s)+1)-i-1) s FROM a WHERE i >= 0)
SELECT * FROM b
হয় এটিকে এককভাবে বিবৃতি হিসাবে ব্যবহার করুন বা উপরের সিটিইগুলি আপনার যে কোনও প্রশ্নের সাথে যুক্ত করুন এবং ফলস্বরূপ সারণিতে আপনি যোগ দিতে সক্ষম হবেন b
পরবর্তী কোনও অভিব্যক্তিতে ব্যবহারের জন্য অন্যদের সাথে ।
সম্পাদনা করুন (শ্নুগো দ্বারা)
আপনি যদি কোনও কাউন্টার যুক্ত করেন তবে তালিকার সাথে আপনি একটি অবস্থান সূচক পাবেন:
DECLARE @s VARCHAR(200) = '1,2333,344,4'
;WITH
a AS (SELECT n=0, i=-1, j=0 UNION ALL SELECT n+1, j, CHARINDEX(',', @s, j+1) FROM a WHERE j > i),
b AS (SELECT n, SUBSTRING(@s, i+1, IIF(j>0, j, LEN(@s)+1)-i-1) s FROM a WHERE i >= 0)
SELECT * FROM b;
ফলাফল:
n s
1 1
2 2333
3 344
4 4