Re: argument of CASE/WHEN must not return a set - Mailing list pgsql-general

From Sameer Kumar
Subject Re: argument of CASE/WHEN must not return a set
Date
Msg-id CADp-Sm4r_mVHORQfA4+E4Aot9uYyFWMqnJnFP1=DDpBA0A_W+w@mail.gmail.com
Whole thread Raw
In response to Re: argument of CASE/WHEN must not return a set  (Sameer Kumar <sameer.kumar@ashnik.com>)
List pgsql-general

On Thu, Jan 9, 2014 at 6:05 PM, Sameer Kumar <sameer.kumar@ashnik.com> wrote:

On Thu, Jan 9, 2014 at 1:26 AM, George Weaver <gweaver@shaw.ca> wrote:
ARRAY_TO_STRING(  REGEXP_MATCHES('12-70510','^[0-9,0-9.0-9]+')
development(#                                  , ',')

I guess this part of your statement will return 1,2, which is a set

Can you try below:
SELECT CASE
             WHEN LENGTH(ARRAY_TO_STRING(  REGEXP_MATCHES('12-70510','^[0-9,0-9.0-9]+')
                                         , ',')
                         )
                  = LENGTH('12-70510')

             THEN cast(ARRAY_TO_STRING(  REGEXP_MATCHES('12-70510','^[0-9,0-9.0-9]+')
                                  , ',') as varchar(100))

             ELSE ''
         END AS "12-70510";

But anyways, I think the best way to do it is the way you have already figured (check the plan for both statements once you have sorted out the error)



Sorry about this response. The issue seems to be different.

 

Best Regards,
Sameer Kumar | Database Consultant
ASHNIK PTE. LTD.
101 Cecil Street, #11-11 Tong Eng Building, Singapore 069533
M : +65 8110 0350 T: +65 6438 3504 | www.ashnik.com
www.facebook.com/ashnikbiz | www.twitter.com/ashnikbiz

email patch

This email may contain confidential, privileged or copyright material and is solely for the use of the intended recipient(s).


Attachment

pgsql-general by date:

Previous
From: Karsten Hilbert
Date:
Subject: Re: getting domain information from query results
Next
From: David Johnston
Date:
Subject: Re: argument of CASE/WHEN must not return a set