2012-06-30 20 views
12

में मैंने SO में इस बारे में कई पोस्ट देखी हैं। लेकिन मुझे जवाब नहीं मिला। मैं यह जांचना चाहता हूं कि कोई विशेष पंक्ति मौजूद है या नहीं। यदि यह अस्तित्व में है, तो मुझे मुझे स्ट्रिंग सत्य वापस कर देना चाहिए और वहां खोज को रोकना चाहिए और यदि झूठी वापसी न हो।जांचें कि कोई पंक्ति मौजूद है या नहीं postgresql

+3

एक अल्पविराम अपने प्रश्न में लापता है। – wildplasser

+1

आपने क्या प्रयास किया है? आप पंक्ति कैसे निर्दिष्ट करते हैं? पंक्ति या सभी विशेषताओं के मूल्यों से? क्या यह एक प्रश्न होना चाहिए या पीएल/एसक्यूएल फ़ंक्शन स्वीकार्य है? – toniedzwiedz

उत्तर

35
select 
    case when exists (select true from table_name where table_column=?) 
    then 'true' 
    else 'false' 
    end; 

लेकिन यह बेहतर होगा बस वापस जाने के लिए बूलियन स्ट्रिंग के बजाय:

select exists (select true from table_name where table_column=?); 
-11

बिगाड़ने:

-- EXPLAIN ANALYZE 
WITH magic AS (
     WITH lousy AS (SELECT * FROM one WHERE num = -1) 
     SELECT 'True'::text AS truth 
     WHERE EXISTS (SELECT * FROM lousy) 
     UNION ALL 
     SELECT 'False'::text AS truth 
     WHERE NOT EXISTS (SELECT * FROM lousy) 
     ) 
SELECT * 
FROM magic 
     ; 
+1

यह बहुत जटिल है। – Tometzky

+0

यह एक spoiler के रूप में इरादा था। ओपी निश्चित रूप से होमवर्क है, और कोई प्रयास नहीं दिखाता है। – wildplasser

+8

आपने जो लिखा है वह मेरे लिए भी अस्पष्ट है। आप एक जानबूझकर obfuscated उदाहरण प्रदान करने के शिक्षक नहीं है जो काम कर रहा है लेकिन [दैनिक डब्ल्यूटीएफ] (http://thedailywtf.com/) योग्य है। उदाहरण के लिए आप 'केस' और' मौजूद 'के दस्तावेज को इंगित कर सकते हैं, क्योंकि यह केवल किसी के लिए उपयोगी है जो जानता है कि क्या देखना है। – Tometzky

संबंधित मुद्दे