Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle में TRUNC (संख्या) फ़ंक्शन

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:

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL अभ्यास के लिए Oracle एक्सप्रेस संस्करण कैसे स्थापित करें

  2. RMAN और ORA-00245 . के साथ स्नैपशॉट नियंत्रण फ़ाइल सुविधा

  3. किसी क्वेरी का उपयोग करके 2 दी गई तिथियों के बीच महीनों की सूची कैसे प्राप्त करें?

  4. भौतिक स्टैंडबाय डेटाबेस में एमआरपी में ORA-01111

  5. ORA-28000:खाता लॉक हो गया है बार-बार त्रुटि हो रही है