নিম্নলিখিত প্রশ্নের সাথে হিসাবে একই ধারণা ব্যবহার এই আশ্চর্যজনক উত্তর দ্বারা ypercube :
SELECT x.*
FROM (SELECT NULL AS SomeCol) AS dummy
CROSS APPLY
(
SELECT
ID,
SomeCol AS MyTest
FROM dbo.Customers
) AS x;
এটি এর মতো কাজ করে:
যদি dbo.Customers
একটি কলামের নাম দেওয়া থাকে SomeCol
তবে SomeCol
এর SomeCol AS MyTest
সমাধান হবে dbo.Customers.SomeCol
;
যদি সারণীতে এর মতো কোনও কলাম না থাকে তবে রেফারেন্সটি এখনও বৈধ থাকবে, কারণ এখন এটি সমাধান হবে dummy.SomeCol
: dummy
কলামগুলি সেই প্রসঙ্গে উল্লেখ করা যেতে পারে।
আপনি একাধিক "অতিরিক্ত" কলামগুলি সেভাবে নির্দিষ্ট করতে পারেন। কৌশলটি এই জাতীয় কলামগুলির জন্য টেবিলের ওরফে ব্যবহার না করা (যা বেশিরভাগ পরিস্থিতিতে একটি উদ্ভট অনুশীলন, তবে সেক্ষেত্রে টেবিলের নামটি বাদ দেওয়া আপনাকে সমস্যাটি সমাধান করতে সহায়তা করে)।
যদি টেবিলটি একটি জোড়তে ব্যবহৃত হয় এবং অন্য টেবিলটির নিজস্ব থাকে SomeCol
, কৌশলটি চালিয়ে যাওয়ার জন্য আপনার সম্ভবত সম্ভবত উপরোক্ত ক্যোয়ারীটিকে জয়েন্টে ব্যবহার করার আগে একটি উত্সযুক্ত টেবিল হিসাবে ব্যবহার করতে হবে, এরকম কিছু:
SELECT ...
FROM
(
SELECT x.*
FROM (SELECT NULL AS SomeCol) AS dummy
CROSS APPLY (
SELECT
ID,
SomeCol AS MyTest
FROM dbo.Customers
) AS x
) AS cust
INNER JOIN ...
;