How to include/reference a common bit of code in a function - Mailing list pgsql-novice

From chandru.aroor@yahoo.com
Subject How to include/reference a common bit of code in a function
Date
Msg-id 2117788854.111664.1529543508328@mail.yahoo.com
Whole thread Raw
Responses Re: How to include/reference a common bit of code in a function  (Laurenz Albe <laurenz.albe@cybertec.at>)
List pgsql-novice
Hi all,

I have a function that has multiple UNION ALLs. As part of the WHERE condition I need to test if any one of 31 columns is true. So right now I have my function looking something like:


Insert into Table A (column 1, ... column n) (
SELECT (column 1, ...column n) from Table B
WHERE ( column  A OR column B OR ...repeated 31 times) = true
AND Condition 1
AND Condition 2
AND Condition 3

UNION ALL

SELECT (column 1, ...column n) from Table C
WHERE ( column  A OR column B OR ...repeated 31 times) = true
AND Condition 4
AND Condition 5
AND Condition 6

UNION ALL

SELECT (column 1, ...column n) from Table D
WHERE ( column  A OR column B OR ...repeated 31 times) = true
AND Condition 7
AND Condition 8
AND Condition 9

UNION ALL repeated about 10 times.

)

My question is there anyway that I can substitute the list of 31 of OR columns (always the same 31 column names) in my WHERE clause  with a "shortcut" so my code is shorter and cleaner. I need to create additional functions for other tables that use the same 31 ORs, so trying to find an easy way to reference this list of ORs across all my functions. Note, the additional WHERE clauses differ for each of the Unions, so I have them numbered 1,2,3 for the first SELECT, 4,5,6 for the second SELECT etc. 

The above is a representation of the function and I have simplified it so I could highlight attention on the above question. 

Thanks! 

Chandru

pgsql-novice by date:

Previous
From: Damian Carey
Date:
Subject: Re: Postgres on Unix/Debian - seeking "dummies guide"
Next
From: Laurenz Albe
Date:
Subject: Re: How to include/reference a common bit of code in a function