निम्न क्वेरी में के रूप में एक ही विचार का उपयोग करता है इस अद्भुत जवाब द्वारा 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
कॉलम को उस संदर्भ में संदर्भित किया जा सकता है।
आप इस तरह से कई "अतिरिक्त" कॉलम निर्दिष्ट कर सकते हैं। इस तरह के स्तंभों के लिए तालिका उपनाम का उपयोग करने के लिए चाल नहीं है (जो कि ज्यादातर स्थितियों में एक frowned पर अभ्यास है, लेकिन इस मामले में तालिका उपनाम को छोड़ना आपको समस्या को हल करने में मदद करता है)।
यदि तालिका में शामिल होने के लिए उपयोग किया जाता है और दूसरी तालिका का अपना है 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 ...
;