Scalar Functions: ucase(), lcase(), round(), mid()

Scalar functions एक बार में एक value बदलती हैं और per row एक नतीजा लौटाती हैं, UCASE/LCASE अक्षर case बदलते हैं, ROUND एक number को round करता है, और MID/SUBSTRING एक text का हिस्सा निकालता है, aggregates के उलट जो कई rows को एक में कुचल देती हैं।

9 min read · 9 cards · 2 checks

Read in: English · हिन्दी · ગુજરાતી


Theory

बदलिए, summarise मत कीजिए

पिछले lesson की aggregates ने कई rows को एक number में कुचल दिया। Scalar functions उलटा करती हैं: वे एक बार में एक value छूती हैं और per row एक नतीजा लौटा देती हैं, हर row को खड़ा रखते हुए।

Meera एक printed list के लिए item names CAPITALS में चाहती है, या prices पूरे रुपयों तक rounded, या हर category के बस पहले तीन अक्षर एक code के रूप में। हर एक हर row को अलग-अलग बदलता है।

Scalar-बनाम-aggregate फ़र्क़ छोटा है पर exam-अहम: क्या function table को summarise करता है, या हर row को transform? यहाँ, transform।

Theory

एक मुहर बनाम एक juicer

पिछले lesson का aggregate एक juicer था: कई संतरे, एक गिलास। एक scalar function एक रबर मुहर है: यह हर page पर एक बार दबती है, हर page अब भी मौजूद है, हर एक बस चिह्नित। 500 item names पर UCASE चलाइए और आपको 500 uppercase names मिलते हैं, एक नहीं। Scalar = per row एक मुहर; aggregate = पूरे ढेर से एक रस। वही input table, उलटा output आकार।

At a glance

आम scalar functions

Functionकरता हैउदाहरण नतीजा
UCASE / UPPERUppercase में'Sugar' से 'SUGAR'
LCASE / LOWERLowercase में'Sugar' से 'sugar'
ROUND(n, d)एक number round करनाROUND(58.7,0) = 59
MID / SUBSTRINGText का हिस्सा निकालनाMID('Grocery',1,3) = 'Gro'
LENGTH / CONCATLength / text जोड़नाLENGTH('Tea') = 3

Practical

Transform each row

-- One result PER ROW: all 5 rows still returned
SELECT UCASE(item)          AS name,
       ROUND(price * 0.9, 0) AS discounted,
       MID(category, 1, 3)   AS code
FROM sales;
-- SUGAR | 41 | Gro
-- TEA   |108 | Bev
-- RICE  | 54 | Gro
-- SOAP  | 32 | Per
-- MILK  | 27 | Dai

Quiz

SELECT UCASE(item) FROM sales (5 rows) कितनी rows लौटाता है, और SELECT COUNT(item) FROM sales कितनी लौटाता है?

  1. UCASE 5 rows लौटाता है (per row एक); COUNT 1 row लौटाता है (एक अकेला कुल)
  2. दोनों 1 row लौटाते हैं
  3. दोनों 5 rows लौटाते हैं
  4. UCASE 1 लौटाता है, COUNT 5
Show the answer

UCASE 5 rows लौटाता है (per row एक); COUNT 1 row लौटाता है (एक अकेला कुल)

UCASE scalar है: per row एक नतीजा, तो सारी 5 rows वापस आती हैं (हर name uppercase)। COUNT aggregate है: यह सारी rows को 1 value में समेटता है (गिनती)। यही मूल बात है, scalar rows बचाता है, aggregate उन्हें कुचलता है। कौन से functions क्या करते हैं यह जानना ठीक वही है जो scalar-बनाम-aggregate exam सवाल जाँचता है।

Think first

एक category code बनाइए

Meera हर category से एक 3-अक्षर uppercase code चाहती है (Grocery से GRO)। वह कौन सी दो scalar functions जोड़ती है, और किस क्रम में?

Show the answer

MID/SUBSTRING (पहले 3 अक्षर लेने को) और UCASE (उन्हें uppercase करने को) जोड़िए: UCASE(MID(category, 1, 3)), 'Gro' निकालिए, फिर uppercase करके 'GRO'। Functions nest होती हैं, अंदरूनी पहले चलती है (निकालना), बाहरी दूसरी (uppercase), ठीक Excel या गणित में nesting की तरह। दोनों scalar हैं, तो हर row को अब भी अपना code मिलता है।

Watch out

Marks कहाँ कटते हैं

मुख्य उलझन: scalar (per row एक नतीजा, table रहती है) बनाम aggregate (कुल एक नतीजा, rows समेटती हैं), फ़र्क़ साफ़ परिभाषित कीजिए। dialect नामों पर ध्यान: UCASE/UPPER और LCASE/LOWER अलग databases में एक ही चीज़ हैं; MID (Access/MySQL) और SUBSTRING भी वैसे ही। और ROUND का दूसरा argument decimal places तय करता है (ROUND(n,0) = पूर्ण संख्या)। scalar-बनाम-aggregate रेखा सही करना इस lessons की जोड़ी का पूरा मक़सद है।

Theory

Excel, एक बार और

UPPER, LOWER, ROUND, MID, ये सचमुच Excel के text और number functions हैं (Unit 1 का ROUND, Unit 2 के helpers), अब SQL में। हस्तांतरण पूरा है: spreadsheets ने आपको functions सिखाए; SQL उन्हें असली databases तक बढ़ाता है। दो lessons ने query कहानी बंद की; दो subject बंद करने को बचते हैं: sequences स्वचालित ID numbers के लिए, फिर views। आगे: एक sequence बनाना।

Summary

Key takeaways

  • Scalar functions एक value बदलती हैं और per row एक नतीजा लौटाती हैं (table अपनी सारी rows रखती है)।
  • यह aggregates के उलट है, जो कई rows को एक value में समेटती हैं।
  • UCASE/UPPER और LCASE/LOWER case बदलते हैं; ROUND(n,d) round करता है; MID/SUBSTRING text निकालता है।
  • सिर्फ scalars वाला SELECT हर row लौटाता है; aggregate वाला SELECT एक लौटाता है।
  • Functions nest होती हैं: अंदरूनी पहले चलती है (UCASE(MID(category,1,3)))।
  • याद रखने का hook: scalar हर page पर एक मुहर है; aggregate पूरे ढेर के लिए एक juicer।

Study this properly

This page is the lesson to read. In Gri-Learn the same topic is a graded deck: the self-checks are scored and your weak topics are tracked. Free to start.

Start this topic

Already have an account? Sign in

More from Concepts of SQL and Queries (Single Table only)

Gri-Learn · syllabus-mapped B.C.A. lessons in English, Hindi and Gujarati