Good morning,

I've have solved my problem in another way, but I am curious as to why I am 
getting the following error.

The following returns a boolean value a expected:

development=# SELECT LENGTH(ARRAY_TO_STRING(  
REGEXP_MATCHES('12-70510','^[0-9,0-9.0-9]+')
development(#                        , ',')
development(#                        )  =
development-#        LENGTH('12-70510')
development-#
development-#     AS "12-70510";
 12-70510
----------------
 f
(1 row)

But if I put the comparison into a CASE or WHERE clause I get this error:

development=# SELECT CASE
development-#             WHEN LENGTH(ARRAY_TO_STRING(  
REGEXP_MATCHES('12-70510','^[0-9,0-9.0-9]+')
development(#                                         , ',')
development(#                         )
development-#                  = LENGTH('12-70510')
development-#
development-#             THEN ARRAY_TO_STRING(  
REGEXP_MATCHES('12-70510','^[0-9,0-9.0-9]+')
development(#                                  , ',')
development-#
development-#             ELSE ''
development-#         END AS "12-70510";
ERROR:  argument of CASE/WHEN must not return a set
LINE 2:             WHEN LENGTH(ARRAY_TO_STRING(  REGEXP_MATCHES('12...


What am I missing?

Thanks,
George

Reply via email to