আপনি যদি মানগুলির সাথে প্রচুর পরিমাণে কাজ করতে চলেছেন তবে আপনি যে পদ্ধতিটি বিবেচনা করতে চাইতে পারেন তা হ'ল প্রথমে সেগুলি অস্থায়ী টেবিলে লিখে দেওয়া। তারপরে আপনি কেবল এতে স্বাভাবিকের মতো যোগ দিন।
এইভাবে, আপনি কেবল একবার পার্সিং করছেন।
'স্প্লিট' ইউডিএফগুলির মধ্যে একটি ব্যবহার করা সবচেয়ে সহজ, তবে এত লোক এর উদাহরণ পোস্ট করেছে, আমি বুঝতে পেরেছিলাম যে আমি অন্য পথে যাব;)
এই উদাহরণটি আপনাকে (# টিএমপিডিপেট) এ যোগদানের জন্য অস্থায়ী টেবিল তৈরি করবে এবং আপনি যে ডিপার্টমেন্টে গিয়েছেন তা পূরণ করুন I'm আমি ধরে নিচ্ছি আপনি এগুলি কমা দিয়ে আলাদা করছেন, তবে আপনি অবশ্যই - পরিবর্তন করতে পারেন এটি আপনি যা চান।
IF OBJECT_ID('tempdb..#tmpDept', 'U') IS NOT NULL
BEGIN
DROP TABLE #tmpDept
END
SET @DepartmentIDs=REPLACE(@DepartmentIDs,' ','')
CREATE TABLE #tmpDept (DeptID INT)
DECLARE @DeptID INT
IF IsNumeric(@DepartmentIDs)=1
BEGIN
SET @DeptID=@DepartmentIDs
INSERT INTO #tmpDept (DeptID) SELECT @DeptID
END
ELSE
BEGIN
WHILE CHARINDEX(',',@DepartmentIDs)>0
BEGIN
SET @DeptID=LEFT(@DepartmentIDs,CHARINDEX(',',@DepartmentIDs)-1)
SET @DepartmentIDs=RIGHT(@DepartmentIDs,LEN(@DepartmentIDs)-CHARINDEX(',',@DepartmentIDs))
INSERT INTO #tmpDept (DeptID) SELECT @DeptID
END
END
এটি আপনাকে একটি বিভাগের আইডি, একাধিক আইডি এবং তাদের মধ্যে কমা সহ একাধিক আইডি বা কমা এবং স্পেসের মধ্যবর্তী স্থানগুলিতে অনুমতি দেয় will
সুতরাং আপনি যদি কিছু এরকম করেন:
SELECT Dept.Name
FROM Departments
JOIN #tmpDept ON Departments.DepartmentID=#tmpDept.DeptID
ORDER BY Dept.Name
আপনি যে ডিপার্টমেন্টে আইডি পাস করেছেন সেগুলির সমস্ত নাম আপনি দেখতে পাবেন ...
আবার, অস্থায়ী টেবিলটি জনপ্রিয় করার জন্য একটি ফাংশন ব্যবহার করে এটি সরল করা যেতে পারে ... আমি সাধারণত এটির কিছু না করে কেবল বিরক্তিকে মেরে ফেলেছিলাম :- পি
- কেভিন ফেয়ারচাইল্ড