का उपयोग करके SQL विवरण को आसान बनाने में मैं निम्नलिखित की तरह एक प्रश्न:CTE
SELECT A.a, A.b, B.c,
(CASE WHEN ... THEN ... ELSE ... END) AS CalculatedValue,
B.d
FROM dbo.TableA A INNER JOIN
dbo.TableB B ON (...)
WHERE (CASE WHEN ... THEN ... ELSE ... END) BETWEEN @DayStart AND @DayEnd
GROUP BY A.a, (CASE WHEN ... THEN ... ELSE ... END), B.c
कई बार ठीक उसी अभिव्यक्ति दोहरा से बचने के लिए: (CASE WHEN ... THEN ... ELSE ... END)
मैं चयन में एक CTE और क्वेरी जैसे तालिका का उपयोग कर परिभाषित करने के लिए चाहता था, जहां और समूह अभिव्यक्ति CalculatedValue
द्वारा दुर्भाग्य से यह काम नहीं करता क्योंकि चयन की जरूरत पहले से ही शामिल करने के लिए group by
जब CTE
बनाने वहाँ किसी भी दूसरी तरफ मैं CASE WHEN...
को कई बार दोहराने के लिए उपयोग नहीं कर सकता था?
धन्यवाद जेएनके, इसने समस्या को हल किया, उसी निष्पादन का समय, पहले से पहले क्लीनर कोड, +1 और हरा ध्वज ;-) –
मदद करने में खुशी! मैंने हाल ही में इस बारे में सीखा है और इसने बहुत सी चीजों को सरल बना दिया है। – JNK
तालिका मूल्यवान कार्यों में सामान्य तर्क को समाहित करते समय यह वास्तव में मजेदार हो जाता है। प्रश्नों को 'टेबल क्रॉस आवेदन udf1 क्रॉस लागू करने के लिए udf2 क्रॉस लागू udf3' पढ़ना समाप्त हो सकता है और सभी' सामान्य 'एसक्यूएल छिपा हुआ है! – MatBailie