बुनियादी तरीका, दुर्भाग्य से, अपने आप को दोहराने के लिए है।
SELECT
CASE WHEN <condition 1> THEN <a1> WHEN <condition 2> THEN <a2> ELSE <a3> END,
CASE WHEN <condition 1> THEN <b1> WHEN <condition 2> THEN <b2> ELSE <b3> END
FROM
<table>
सौभाग्य से, सबसे आरडीबीएमएस पर्याप्त चतुर की स्थिति कई बार का मूल्यांकन करने की जरूरत नहीं कर रहे हैं। यह सिर्फ अनावश्यक टाइपिंग है।
एमएस एसक्यूएल सर्वर में (2005+) आप संभावित उपयोग क्रॉस इस के लिए एक विकल्प के रूप में लागू हो सकते हैं। हालांकि मुझे पता नहीं कैसे performant यह है ... है
SELECT
*
FROM
<table>
CROSS APPLY
(
SELECT a1, b1 WHERE <condition 1>
UNION ALL
SELECT a2, b2 WHERE <condition 2>
UNION ALL
SELECT a3, b3 WHERE <condition 3>
)
AS case_proxy
यहां उल्लेखनीय नकारात्मक पक्ष यह कोई और नहीं के बराबर है कि वहाँ और कहा कि केवल इस तरह के तैयार किए जा करने के लिए के रूप में सभी की स्थिति सकता सब वापसी मान, वे की जरूरत है एक समय में कभी भी सच हो सकता है।
संपादित
तो नीरस के जवाब बल्कि दृष्टिकोण शामिल हों की तुलना में एक संघ के लिए बदल गया है, यह बहुत ही इस के समान हो जाता है। हालांकि, मुख्य अंतर यह है कि यह केवल एक बार प्रति शर्त (आपके मामले में 100 गुना) की बजाय एक बार इनपुट डेटा सेट स्कैन करता है।
संपादित
मैं भी पाया है कि आपने मतलब हो सकता है कि मूल्यों मामला बयानों द्वारा दिया निर्धारित हैं। एक ही शर्त से मेल खाने वाले सभी रिकॉर्ड सटीक नाम मान मान 1 और मान 2 में प्राप्त करते हैं। यह इस तरह बनाया जा सकता है ...
WITH
checked_data AS
(
SELECT
CASE WHEN <condition1> THEN 1
WHEN <condition2> THEN 2
WHEN <condition3> THEN 3
...
ELSE 100
END AS condition_id,
*
FROM
<table>
)
,
results (condition_id, value1, value2) AS
(
SELECT 1, a1, b1
UNION ALL
SELECT 2, a2, b2
UNION ALL
SELECT 3, a3, b3
UNION ALL
...
SELECT 100, a100, b100
)
SELECT
*
FROM
checked_data
INNER JOIN
results
ON results.condition_id = checked_data.condition_id
क्या यह एमएस एसक्यूएल सर्वर है? – MatBailie
हाँ, यह ...... – yzhang
क्या आप अपने परिदृश्य को स्पष्ट कर सकते हैं? उदाहरण के लिए, 100 अलग-अलग केस स्थितियों में से प्रत्येक मान 1 और मान 2 के लिए 100 अलग-अलग लागू मानों का कारण बनता है, या 100 अलग-अलग स्थितियों में से कई एक ही परिणाम उत्पन्न करेंगे? क्या हालात अलग-अलग क्षेत्रों के सभी संयोजनों के संयोजन हैं, या वे एक ही क्षेत्र के अलग-अलग संभावित मूल्य हैं? –