2013-01-13 13 views
17

मेरे पास एक तालिका के साथ एक स्क्लाइट डीबी है जिसमें निम्न संरचना स्थान नाम अक्षांश देशांतर सभी को वर्चर के रूप में परिभाषित किया गया है। दशमलव में अक्षांश दिए गए एक विशिष्ट अक्षांश सीमा के साथ सभी स्थानों को प्राप्त करने के लिए मैं एक एसक्यूएल कथन कैसे बना सकता हूं। क्या ऐसा करने का कोई तरीका है जो फ्लाई पर वर्कर से दशमलव मान में परिवर्तित हो जाता है? या मुझे रिटर्न स्टेटमेंट्स के माध्यम से कदम उठाना है और मैन्युअल रूप से रूपांतरण करना हैsqlite टेक्स्ट को संख्याओं में कनवर्ट करें

+1

SQLite वर्चर (टेक्स्ट) के अलावा अन्य प्रकारों का समर्थन करता है - http://www.sqlite.org/datatype3.html। वास्तविक कॉलम में मूल्यों को क्यों स्टोर न करें? – xyzzycoder

+0

यह मानकों को डेटाबेस में वास्तविक संख्या के रूप में स्टोर करने के लिए कहीं अधिक कुशल होगा। – rmaddy

+0

मुझे उस फॉर्मेट में डीबी दिया गया है जिसे मैं बदल नहीं सकता। इच्छा है कि मैं कर सकता हूं :) – user519274

उत्तर

42

http://www.sqlite.org/lang_expr.html पर "CAST अभिव्यक्ति" देखें।

SELECT CAST('3.02' as decimal) 
-- they aren't real decimals in sqlite, though. beware floats. 
+0

ओह धन्यवाद, मैं इसे आज़मा दूंगा। क्या होगा यदि उदाहरण के लिए अक्षांश के लिए कॉलम को N320515 के रूप में परिभाषित किया गया है। क्या ऐसा करने का कोई तरीका है? – user519274

+0

सबस्ट्रिंग निकालने के लिए 'substr' है, और 'मामला .. जब..एन'' एन/एस 'को 1/-1 में परिवर्तित करने के लिए है। आपको एक बालों वाली अभिव्यक्ति मिल जाएगी, लेकिन यह संभव है। यूपीडी: और सुनिश्चित करें कि सभी संभावित गोलार्धों पर परीक्षण करें :) –

+0

धन्यवाद, मैं उस एसक्यूएल स्टेटमेंट को बनाने के तरीके में और अधिक खोद दूंगा। – user519274

संबंधित मुद्दे

 संबंधित मुद्दे