我想知道如果列存在,是否可以選擇列的值,否則只選擇null。換句話說,我想「解除」select語句來處理列不存在的情況。如果列存在,請選擇columnValue否則爲空
SELECT uniqueId
, columnTwo
, /*WHEN columnThree exists THEN columnThree ELSE NULL END*/ AS columnThree
FROM (subQuery) s
請注意,我正在鞏固我的數據模型和設計。我希望在接下來的幾周內排除這個邏輯,但是我真的很想超越這個問題,因爲數據模型修復比我現在想要解決的更耗時。
另請注意,我希望能夠在一個查詢中執行此操作。所以我不在尋找像
答案首先檢查您的子查詢上的列。然後修改您的 查詢以適當地處理您的子查詢中的列。
你爲什麼要編寫假設你的數據模型將會是愚蠢的代碼?爲什麼不編寫現在存在的列,並且當ColumnThree在您的數據模型中成爲永久的一等公民時,修復查詢?另外我強烈建議不要告訴人們你不在尋找什麼。你說的限制不可能達到,你需要給出一個比這更好的理由。當你在一個存儲過程中封裝內容時,「在一個查詢中」的意義很小。 –
@AaronBertrand你問了兩個問題,所以我會解決這兩個問題。首先,我的目標是儘快提供高質量的功能。現在,我需要來自'ColumnThree'的值,以使我的功能正常工作。所以我會在存在時使用該列...即使解決方案不夠高雅。 –
@AaronBertrand其次,我感謝你的建議,但恭敬地不同意。我想明確地表達我的要求,以便用戶可以專注於提出解決方案,解決我的問題,而不會浪費時間寫出我知道不令人滿意的答案。我認爲明確說明哪些不會是令人滿意的答案,有助於用戶專注於解決方案的更多價值。 –