पहले मैं यह बता दूं कि मेरा प्रश्न इस प्रश्न के बहुत करीब होने वाला है: मैप-कॉलम-डेटा-टू-ए-वैल्यू-ऑरैकल
कृपया इसे पहले जल्दी से पढ़ें।
अब मेरे मामले में मुझे ठीक वही चीज़ चाहिए, लेकिन प्राथमिक क्वेरी के रूप में नहीं। इसके बजाय मुझे अपनी क्वेरी के एक भाग के रूप में जानकारी चाहिए।
मेरे पास यह तालिका है:
someId | someValue | dataType
1 | 500 | 1
2 | someValue | 2
और मुझे पता है कि डेटा टाइप "1" का अर्थ है "पूर्णांक"। मैं डेटा टाइप कॉलम में अन्य मानों का अर्थ भी जानता हूं।
इसलिए मैं तालिका में सभी प्रविष्टियों का चयन करना चाहता हूं, लेकिन उनके डेटा प्रकार उनके नंबरों के बजाय उनके मानव पठनीय मूल्यों के रूप में हैं:
परिणाम:
1, 500, Integer
2, someString, String
मेरे द्वारा लिंक किए गए प्रश्न के समाधान को लागू करने का प्रयास करते हुए, मैंने एक उपश्रेणी बनाई जैसे
SELECT
someId,
someValue,
(
SELECT CASE
WHEN dataType = 1 THEN 'INTEGER'
WHEN dataType = 2 THEN 'FLOAT'
WHEN dataType = 3 THEN 'TEXT'
ELSE 'DATE'
END
myTable
) as myDataType
मुझे एक सबक्वायरी मिलेगी जो 1 से अधिक परिणाम लौटाएगी और ओरेकल शिकायत करेगा।
चूंकि मैं सीधे एसक्यूएल के माध्यम से डीबी तक पहुंचता हूं, मुझे "शुद्ध एसक्यूएल" समाधान की आवश्यकता होती है। अन्यथा मैं PHP में, मैपिंग के माध्यम से मूल्य को पार्स कर सकता हूं। लेकिन यहां ऐसा संभव नहीं है। मैं डेटा और संरचना के बारे में जानकारी इकट्ठा करने और इकट्ठा करने के लिए डीबी में कुछ प्रश्नों की शूटिंग कर रहा हूं, जिनके बारे में हम नहीं जानते हैं। तो केवल एसक्यूएल उपलब्ध है।
1 उत्तर
सबक्वेरी से छुटकारा पाएं:
SELECT someId,
someValue,
CASE
WHEN dataType = 1 THEN 'INTEGER'
WHEN dataType = 2 THEN 'FLOAT'
WHEN dataType = 3 THEN 'TEXT'
ELSE 'DATE'
END as Datatype
from myTable
संबंधित सवाल
नए सवाल
sql
संरचित क्वेरी भाषा (एसक्यूएल) डेटाबेस को क्वेरी करने के लिए एक भाषा है। प्रश्नों में कोड उदाहरण, तालिका संरचना, नमूना डेटा और DBMS कार्यान्वयन के लिए एक टैग (जैसे MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2, आदि) का उपयोग किया जाना चाहिए। यदि आपका प्रश्न केवल एक विशिष्ट DBMS (विशिष्ट एक्सटेंशन / सुविधाओं का उपयोग करता है) से संबंधित है, तो इसके बजाय उस DBMS के टैग का उपयोग करें। एसक्यूएल के साथ टैग किए गए सवालों के जवाब में आईएसओ / आईईसी मानक एसक्यूएल का उपयोग करना चाहिए।