Aşağıdaki sorgu ile aynı fikri kullanan bu şaşırtıcı bir cevap ile ypercube :
SELECT x.*
FROM (SELECT NULL AS SomeCol) AS dummy
CROSS APPLY
(
SELECT
ID,
SomeCol AS MyTest
FROM dbo.Customers
) AS x;
Şöyle çalışır:
eğer dbo.Customersadlı bir sütun vardır SomeCol, o zaman SomeColiçinde SomeCol AS MyTestolarak çözecektir dbo.Customers.SomeCol;
tablonun böyle bir sütunu yoksa, başvuru hala geçerli olacaktır, çünkü şimdi şu şekilde çözümlenecektir dummy.SomeCol: dummysütunlar bu bağlamda başvurulabilir.
Bu şekilde birden çok "yedek" sütun belirtebilirsiniz. Hile, bu tür sütunlar için tablo takma adını kullanmak değildir (çoğu durumda kaşlarını çatmış bir uygulamadır, ancak bu durumda tablo takma adını atlamak sorunu çözmenize yardımcı olur).
Tablo bir birleşimde kullanılırsa ve diğer tablonun kendi tablosu varsa SomeCol, hile çalışmasını sağlamak için birleştirme işleminde kullanmadan önce yukarıdaki sorguyu türetilmiş bir tablo olarak kullanmanız gerekebilir:
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 ...
;