मैं कैसे या समारोह के साथ इसकैसे बूलियन स्तंभ कुल
COL_1 | COL_2 | COL_3 | COL_4
val | T | F | F
val | F | T | F
जैसे कुछ tuples समेकित कर सकते हैं और निम्न तालिका वापस जाने के लिए?
COL_1 | COL_2 | COL_3 | COL_4
val | T | T | F
मैं कैसे या समारोह के साथ इसकैसे बूलियन स्तंभ कुल
COL_1 | COL_2 | COL_3 | COL_4
val | T | F | F
val | F | T | F
जैसे कुछ tuples समेकित कर सकते हैं और निम्न तालिका वापस जाने के लिए?
COL_1 | COL_2 | COL_3 | COL_4
val | T | T | F
बस एक GROUP BY
, MAX()
प्रयोग करते हैं, टी वापस जाने के लिए, यदि उपलब्ध किसी और एफ
select col_1, max(col_2), max(col_3), max(col_4)
from tablename
group by col_1
तो COL_2
COL_4
कर रहे हैं पाठ स्तंभ (char
, varchar
, varchar2
, nvarchar
, nvarchar2
) 'T'
युक्त या 'F'
, तो आप उनमें से 'T' > 'F'
, यानी 'T'
से पहले ही आ सकते हैं लेक्सिकल क्रम में आर 'F'
।
SELECT COL_1, MAX(COL_2) AS COL_2, MAX(COL_3) AS COL_3, MAX(COL_4) AS COL_4
FROM table
GROUP BY COL_1
स्पष्टीकरण: स्थानीय ऑपरेशन या सत्य लौटाता है, यदि कम से कम एक ऑपरेंड सत्य है। MAX() "T"
देता है यदि कम से कम एक मान "T"
और अन्यथा "F"
है।
नोट: बूलियन स्तंभ के रूप में
COL_x NUMBER(1) DEFAULT 0 NOT NULL
या किसी अन्य सांख्यिक प्रकार घोषित कर दिया गया है तो मैं, MAX(ABS(col_x))
ले जाएगा के बाद से एक नकारात्मक मूल्य के साथ ही सही मायने रखता है। (आप कोई ComboBox एक बूलियन से जुड़ी साथ कोई पहुँच दृश्यपटल है, तो यह मान 0
या -1
अर्जित करता है।)
चयन col1 = मैक्स (CONVERT (tinyint, IsNull (col1,0))) ...
बस एक पक्ष नोट के रूप में (Oracle के साथ काम नहीं करता है): PostgreSQL में, यदि आप ऐसा करते हैं:
select col_1, bool_or(col_2), bool_or(col_3), bool_or(col_4)
from tablename group by col_1 order by col_1
आपको यह उत्तर कुछ व्याख्या कर सकते हैं? – Forklift