यह एक अनाम समग्र मान का निर्माण करता है:
select (1, 'a');
उदाहरण के लिए:
=> select (1, 'a');
row
-------
(1,a)
(1 row)
=> select row(1, 'a');
row
-------
(1,a)
(1 row)
ध्यान दें कि यह एक एकल संयुक्त मान है, एकाधिक मान नहीं।
बढ़िया मैनुअल से:
<ब्लॉकक्वॉट>8.16.2. समग्र मूल्य इनपुट
एक समग्र मान को शाब्दिक स्थिरांक के रूप में लिखने के लिए, कोष्ठक के भीतर फ़ील्ड मान संलग्न करें और उन्हें अल्पविराम से अलग करें। आप किसी भी फ़ील्ड मान के आस-पास दोहरे उद्धरण चिह्न लगा सकते हैं, और यदि उसमें अल्पविराम या कोष्ठक हों तो अवश्य करें।
[...]ROW
अभिव्यक्ति सिंटैक्स का उपयोग समग्र मूल्यों के निर्माण के लिए भी किया जा सकता है। ज्यादातर मामलों में स्ट्रिंग-शाब्दिक सिंटैक्स की तुलना में इसका उपयोग करना काफी सरल है क्योंकि आपको उद्धरण की कई परतों के बारे में चिंता करने की आवश्यकता नहीं है। हम पहले ही ऊपर इस विधि का उपयोग कर चुके हैं:
ROW('fuzzy dice', 42, 1.99)
ROW('', 42, NULL)
ROW
कीवर्ड वास्तव में तब तक वैकल्पिक है जब तक आपके पास अभिव्यक्ति में एक से अधिक फ़ील्ड हैं, इसलिए इन्हें सरल बनाया जा सकता है:
('fuzzy dice', 42, 1.99)
('', 42, NULL)
पंक्ति निर्माणकर्ता अनुभाग रुचि का भी हो सकता है।
जब आप यह कहते हैं:
INSERT INTO circuit (id_circuit, description, date_start, date_end, speed,
length, duration)
SELECT (...)
FROM segment seg, wgs cir where seg.id = 13077
आपका SELECT
क्लॉज में केवल एक कॉलम है जो संपूर्ण (...)
. है अभिव्यक्ति एकल मूल्य का प्रतिनिधित्व करती है। समाधान केवल उन कोष्ठकों को छोड़ना है:
INSERT INTO circuit (id_circuit, description, date_start, date_end, speed, length, duration)
SELECT seg.id_segment, ..., (seg.date_end - seg.date_start)
FROM segment seg, wgs cir where seg.id = 13077