Oracle डाटाबेस में, TRUNC(number)
फ़ंक्शन एक दी गई संख्या देता है, दशमलव स्थानों की दी गई संख्या में छोटा कर दिया जाता है।
Oracle में एक TRUNC(date)
भी है फ़ंक्शन, जिसका उपयोग तिथियों पर किया जाता है। यह लेख केवल TRUNC(number)
. के बारे में है फ़ंक्शन, जिसका उपयोग संख्याओं पर किया जाता है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
TRUNC(n1 [, n2 ])
जहां n1
छोटा करने का मान है, और n2
एक वैकल्पिक तर्क है जो निर्दिष्ट करता है कि कितने दशमलव स्थानों को छोटा करना है n1
को। अगर n2
छोड़ा गया है, फिर n1
शून्य दशमलव स्थानों पर छोटा कर दिया गया है।
n1
कोई भी संख्यात्मक डेटा प्रकार या कोई गैर-संख्यात्मक डेटा प्रकार हो सकता है जिसे परोक्ष रूप से एक संख्यात्मक डेटा प्रकार में परिवर्तित किया जा सकता है।
उदाहरण
यहां एक उदाहरण दिया गया है:
SELECT TRUNC(3.95)
FROM DUAL;
परिणाम:
TRUNC(3.95) ______________ 3
दशमलव स्थान निर्दिष्ट करें
यह निर्दिष्ट करने के लिए कि कितने दशमलव स्थानों के लिए मान को छोटा करना है, दूसरा तर्क पारित करने का एक उदाहरण यहां दिया गया है:
SELECT TRUNC(1.25817, 2)
FROM DUAL;
परिणाम:
TRUNC(1.25817,2) ___________________ 1.25
यहाँ कुछ और हैं:
SELECT
TRUNC(1.25817, 1) AS "1",
TRUNC(1.25817, 2) AS "2",
TRUNC(1.25817, 3) AS "3",
TRUNC(1.25817, 4) AS "4"
FROM DUAL;
परिणाम:
1 2 3 4 ______ _______ ________ _________ 1.2 1.25 1.258 1.2581
नकारात्मक दशमलव स्थान
यदि आवश्यक हो तो दूसरा तर्क ऋणात्मक मान हो सकता है। ऋणात्मक मान पास करने से अंक बाईं ओर हो जाते हैं दशमलव स्थान का शून्य हो जाना।
उदाहरण:
SELECT TRUNC(6973.45, -2)
FROM DUAL;
परिणाम:
TRUNC(6973.45,-2) ____________________ 6900
की तुलना में ROUND()
TRUNC()
फ़ंक्शन ROUND()
. से भिन्न है समारोह। ROUND()
फ़ंक्शन कुछ उदाहरणों में संख्या को ऊपर और दूसरों में नीचे की ओर गोल करता है। TRUNC()
दूसरी ओर, फ़ंक्शन, बिना गोल किए केवल संख्या को छोटा कर देता है।
इस अंतर को प्रदर्शित करने के लिए यहां एक तुलना है:
SELECT
TRUNC(3.6789, 2),
ROUND(3.6789, 2)
FROM DUAL;
परिणाम:
TRUNC(3.6789,2) ROUND(3.6789,2) __________________ __________________ 3.67 3.68
यह FLOOR()
. से भी अलग है फ़ंक्शन, जो अपने तर्क के बराबर या उससे कम सबसे बड़ा पूर्णांक देता है। FLOOR()
ROUND()
. जैसे दूसरे तर्क को स्वीकार नहीं करता है और TRUNC()
do (यह वैसे भी केवल एक पूर्णांक लौटाता है)।
शून्य मान
यदि कोई तर्क null
है , परिणाम null
. है :
SET NULL 'null';
SELECT
TRUNC(null, 2),
TRUNC(2.35, null),
TRUNC(null, null)
FROM DUAL;
परिणाम:
TRUNC(NULL,2) TRUNC(2.35,NULL) TRUNC(NULL,NULL) ________________ ___________________ ___________________ null null null
डिफ़ॉल्ट रूप से, SQLcl और SQL*Plus जब भी SQL SELECT
के परिणामस्वरूप एक रिक्त मान उत्पन्न होता है तो एक रिक्त स्थान लौटाता है बयान।
हालांकि, आप SET NULL
. का उपयोग कर सकते हैं वापस करने के लिए एक अलग स्ट्रिंग निर्दिष्ट करने के लिए। यहाँ मैंने निर्दिष्ट किया है कि स्ट्रिंग null
वापस किया जाना चाहिए।
गैर-संख्यात्मक तर्क
यहां बताया गया है कि जब हम गैर-संख्यात्मक तर्क प्रदान करते हैं तो क्या होता है:
SELECT TRUNC('Hundred', 'Two')
FROM DUAL;
परिणाम:
Error starting at line : 1 in command - SELECT TRUNC('Hundred', 'Two') FROM DUAL Error report - ORA-01722: invalid number
अवैध तर्क गणना
कॉलिंग TRUNC()
तर्कों की गलत संख्या के साथ, या बिना तर्क के त्रुटि उत्पन्न होती है:
SELECT TRUNC()
FROM DUAL;
परिणाम:
Error starting at line : 1 in command - SELECT TRUNC() 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 TRUNC(1, 2, 3)
FROM DUAL;
परिणाम:
Error starting at line : 1 in command - SELECT TRUNC(1, 2, 3) FROM DUAL Error at Command Line : 1 Column : 20 Error report - SQL Error: ORA-00939: too many arguments for function 00939. 00000 - "too many arguments for function" *Cause: *Action: