निम्नलिखित PostgreSQL उदाहरण केवल उन पंक्तियों को लौटाते हैं जिनका किसी दिए गए कॉलम में कोई संख्यात्मक मान नहीं है।
नमूना डेटा
आइए नमूना डेटा के साथ एक तालिका बनाएं:
DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (
c1 varchar(255)
);
INSERT INTO t1 (c1) VALUES
('0'),
('1'),
('+1'),
('-1'),
('00.00'),
('73.45'),
('+73.45'),
('-73.45'),
('.246'),
('-.34e7'),
('12.e-3'),
('1.2e+4'),
('a'),
('9afc'),
('e7'),
('+e0'),
('Ten'),
('5 Dollars');
SELECT * FROM t1;
तालिका अब बनाई गई है और इसमें निम्न डेटा शामिल है:
c1 ----------- 0 1 +1 -1 00.00 73.45 +73.45 -73.45 .246 -.34e7 12.e-3 1.2e+4 a 9afc e7 +e0 Ten 5 Dollars
कॉलम एक varchar(255)
है कॉलम, इसलिए यह संख्यात्मक नहीं है। इसमें संख्याएँ हो सकती हैं (और करता है) लेकिन ये वर्ण डेटा के रूप में संग्रहीत हैं। इसमें मनमाना पाठ भी हो सकता है (जो यह करता है)।
गैर-संख्यात्मक मान लौटाएं
उपरोक्त तालिका से गैर-संख्यात्मक मान वापस करने के लिए हम निम्नलिखित क्वेरी का उपयोग कर सकते हैं:
SELECT c1
FROM t1
WHERE c1 !~ '^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$';
परिणाम:
c1 ----------- 12.e-3 a 9afc e7 +e0 Ten 5 Dollars
गैर-पूर्णांक लौटाएं
अगर हम केवल गैर-पूर्णांक लौटाना चाहते हैं, तो क्वेरी बहुत आसान हो सकती है:
SELECT c1
FROM t1
WHERE c1 !~ '^[0-9]+$';
परिणाम:
c1 ----------- +1 -1 00.00 73.45 +73.45 -73.45 .246 -.34e7 12.e-3 1.2e+4 a 9afc e7 +e0 Ten 5 Dollars
संख्यात्मक डेटा शामिल नहीं है
यदि हम उन पंक्तियों को खोजना चाहते हैं जिनमें संख्यात्मक डेटा नहीं है, तो हम निम्न कार्य कर सकते हैं:
SELECT c1
FROM t1
WHERE c1 !~ '[0-9]+';
परिणाम:
c1 ----- a Ten
PostgreSQL में, !~
एक केस-संवेदी ऑपरेटर है जिसका उपयोग उन मानों को वापस करने के लिए किया जाता है जो दिए गए रेगुलर एक्सप्रेशन से मेल नहीं खाते। केस-संवेदी मिलान के लिए, !~*
. का उपयोग करें ।
आप ~
. का उपयोग कर सकते हैं उन सभी पंक्तियों को वापस करने के लिए जो करती हैं रेगुलर एक्सप्रेशन से मिलान करें (और ~*
केस-असंवेदनशील मैचों के लिए)।