แบบสอบถามต่อไปนี้ใช้ความคิดเช่นเดียวกับในคำตอบที่น่าตื่นตาตื่นใจนี้โดย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 ...
;