मुख्य सामग्री पर जाएं
मॉड्यूल 6 · पाठ 1 का 4पाठ्यक्रम में 21/57~12 min
मॉड्यूल पाठ (1/4)

स्ट्रिंग फ़ंक्शन

PostgreSQL में स्ट्रिंग्स में हेरफेर करने के लिए दर्जनों फ़ंक्शन हैं। इस पाठ में हम वास्तविक कार्य में सबसे आम चीज़ों को देखते हैं: सामान्यीकरण (LOWER/UPPER), मापना (LENGTH), लिखना (|| / CONCAT), निकालना (SUBSTRING), सफाई (TRIM), प्रतिस्थापन (REPLACE), और पैटर्न खोज (LIKE / ILIKE)।

हम जिन फ़ंक्शंस का उपयोग करेंगे

SQL
LOWER('Alice')                -- 'alice'
UPPER('alice')                -- 'ALICE'
LENGTH('alice')               -- 5
'a' || 'b'                    -- 'ab'  (concatenazione)
CONCAT('a', 'b', 'c')         -- 'abc' (versione "funzione")
SUBSTRING('hello' FROM 2 FOR 3) -- 'ell'
TRIM(' alice ')               -- 'alice'
REPLACE('foo bar', 'bar','x') -- 'foo x'

|| स्ट्रिंग्स को जोड़ने के लिए मानक SQL ऑपरेटर है; CONCAT है अधिक अनुज्ञेय (यह NULLs को अनदेखा करता है, जबकि || उन्हें प्रचारित करता है: 'a' || NULL → NULL).

पसंद करें और पसंद करें: पैटर्न के आधार पर खोजना

LIKE एक पैटर्न खोजता है: % = कोई अनुक्रम, _ = एक चरित्र. यह केस-सेंसिटिव है। ILIKE PostgreSQL है केस-असंवेदनशील वैरिएंट:

SQL
WHERE name LIKE  '%Cuffie%'   -- match esatto "Cuffie"
WHERE name ILIKE '%cuffie%'   -- match anche "CUFFIE", "Cuffie", "cuffie"
WHERE email LIKE  '%@example.com'
WHERE first_name LIKE 'A_____'  -- inizia per A, lungo 6 (A + 5 caratteri)

पैटर्न के अंदर शाब्दिक % या _ खोजने के लिए, ESCAPE का उपयोग करें:

SQL
WHERE titolo LIKE '%50\%%' ESCAPE '\';   -- contiene "50%"

कार्यों का संयोजन

फ़ंक्शंस किसी भी भाषा की तरह बनते हैं:

SQL
-- Email "normalizzata" e iniziali in maiuscolo:
SELECT LOWER(email) AS email_norm,
       UPPER(SUBSTRING(first_name FROM 1 FOR 1)) || '.'
       || UPPER(SUBSTRING(last_name  FROM 1 FOR 1)) || '.' AS iniziali
FROM   customers
ORDER BY id;

इसे अजमाएं

व्यायाम#sql.m6.l1.e1
प्रयास: 0लोड हो रहा है...

प्रत्येक ग्राहक के लिए, ईमेल को छोटे अक्षरों में (कॉलम ईमेल) और पूरा नाम 'पहला_नाम अंतिम_नाम' (कॉलम पूरा_नाम) दिखाएं। आईडी द्वारा ऑर्डर करें.

संपादक लोड हो रहा है...
संकेत दिखाएँ

पहले कॉलम के लिए निचला, || बीच में एक स्थान के साथ जुड़ना।

3 प्रयासों के बाद समाधान उपलब्ध है

व्यायाम की समीक्षा करें

व्यायाम#sql.m6.l1.e2
प्रयास: 0लोड हो रहा है...

वे सभी उत्पाद ढूंढें जिनके नाम में 'लैपटॉप' (किसी भी स्थिति में) शब्द शामिल है। केवल नाम कॉलम दिखाएँ. नाम से ऑर्डर करें.

संपादक लोड हो रहा है...
संकेत दिखाएँ

ILIKE केस-असंवेदनशील है। किसी भी स्थिति में 'लैपटॉप' से मिलान करने के लिए '%laptop%' का उपयोग करें।

3 प्रयासों के बाद समाधान उपलब्ध है