Oracle में, ROUND(number)
फ़ंक्शन दशमलव स्थानों की दी गई संख्या के लिए पूर्णांकित संख्या देता है।
डिफ़ॉल्ट रूप से, यह संख्या को शून्य दशमलव स्थानों तक पूर्णांकित करता है, लेकिन आप एक वैकल्पिक तर्क प्रदान कर सकते हैं जो उपयोग करने के लिए दशमलव स्थानों की संख्या निर्दिष्ट करता है।
Oracle का एक ROUND(date)
भी है सिंटैक्स, जिसका उपयोग तिथियों पर किया जाता है। यह लेख केवल ROUND(number)
. के बारे में है सिंटैक्स, जिसका उपयोग संख्याओं पर किया जाता है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
ROUND(n [, integer ])
जहां n
कोई भी संख्यात्मक डेटा प्रकार या कोई भी गैर-संख्यात्मक डेटा प्रकार हो सकता है जिसे परोक्ष रूप से एक संख्यात्मक डेटा प्रकार में परिवर्तित किया जा सकता है, और integer
एक वैकल्पिक पूर्णांक है जो n
. को गोल करने के लिए दशमलव स्थानों की संख्या निर्दिष्ट करता है करने के लिए।
उदाहरण
यहां एक उदाहरण दिया गया है:
SELECT ROUND(7.85)
FROM DUAL;
परिणाम:
ROUND(7.85) ______________ 8
नकारात्मक मान
इसे ऋणात्मक मान में बदलने से निम्न परिणाम प्राप्त होते हैं:
SELECT ROUND(-7.85)
FROM DUAL;
परिणाम:
ROUND(-7.85) _______________ -8
दूसरा तर्क
दूसरा तर्क प्रदान करने का एक उदाहरण यहां दिया गया है:
SELECT ROUND(7.85, 1)
FROM DUAL;
परिणाम:
ROUND(7.85,1) ________________ 7.9
इस मामले में, मैंने निर्दिष्ट किया कि परिणाम को एक दशमलव स्थान पर गोल किया जाना चाहिए।
बड़ी संख्या में दशमलव स्थानों के साथ एक और उदाहरण यहां दिया गया है:
SELECT ROUND(3.14159265359, 4)
FROM DUAL;
परिणाम:
ROUND(3.14159265359,4) _________________________ 3.1416
नेगेटिव राउंडिंग
आप दूसरे तर्क के लिए ऋणात्मक मान भी निर्दिष्ट कर सकते हैं। ऐसा करने से संख्या दशमलव बिंदु के बाईं ओर पूर्णांक बन जाती है:
SELECT ROUND(75631, -3)
FROM DUAL;
परिणाम:
ROUND(75631,-3) __________________ 76000
गैर-संख्यात्मक तर्कों को गोल करना
यहां बताया गया है कि जब हम एक गैर-संख्यात्मक तर्क को गोल करने का प्रयास करते हैं जिसे एक संख्यात्मक डेटा प्रकार में परिवर्तित नहीं किया जा सकता है:
SELECT ROUND('Bruce')
FROM DUAL;
परिणाम:
Error starting at line : 1 in command - SELECT ROUND('Bruce') FROM DUAL Error report - ORA-01722: invalid number
हालांकि, हम तारीखों को गोल कर सकते हैं - इस फ़ंक्शन का एक दिनांक संस्करण है जो हमें तारीखों को गोल करने की अनुमति देता है।
शून्य मान
null
round को गोल करने की कोशिश की जा रही है रिटर्न null
, और किसी संख्या को null
. द्वारा पूर्णांकित करने का प्रयास कर रहा है null
में भी परिणाम होता है :
SET NULL 'null';
SELECT
ROUND(null),
ROUND(null, 2),
ROUND(2.345, null)
FROM DUAL;
परिणाम:
ROUND(NULL) ROUND(NULL,2) ROUND(2.345,NULL) ______________ ________________ ____________________ null null null
डिफ़ॉल्ट रूप से, SQLcl और SQL*Plus जब भी null
. खाली स्थान लौटाते हैं SQL SELECT
. के परिणामस्वरूप होता है बयान।
हालांकि, आप SET NULL
. का उपयोग कर सकते हैं वापस करने के लिए एक अलग स्ट्रिंग निर्दिष्ट करने के लिए। यहाँ मैंने निर्दिष्ट किया है कि स्ट्रिंग null
लौटाया जाना चाहिए।
गलत तर्क गणना
कॉलिंग ROUND()
कोई तर्क पारित किए बिना एक त्रुटि देता है:
SELECT ROUND()
FROM DUAL;
परिणाम:
Error starting at line : 1 in command - SELECT ROUND() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00938: not enough arguments for function 00938. 00000 - "not enough arguments for function" *Cause: *Action:
और तर्कों की गलत संख्या पास करने से त्रुटि होती है:
SELECT ROUND(1.34, 2, 3)
FROM DUAL;
परिणाम:
Error starting at line : 1 in command - SELECT ROUND(1.34, 2, 3) FROM DUAL Error at Command Line : 1 Column : 23 Error report - SQL Error: ORA-00939: too many arguments for function 00939. 00000 - "too many arguments for function" *Cause: *Action: