Обсуждение: Calculation Functions between Columns

Поиск
Список
Период
Сортировка

Calculation Functions between Columns

От
Neacal
Дата:
Hi

In my crossing from FileMaker to Postgresql, I have a question that so
far I can't answer from reading the O'Reilly book.  BTW: most of the
'calculations' I'm referring to here are in text; I'm building a tool
for a Linguistics application. If I use numbers, they are usually a
code from which to calculate textual variables.

e.g.:

In languages which combine STEMS and a variety of ENDINGS to
differentiate genders, cases, tenses etc ... I could build text
operators in FileMaker to generate these.

1) a couple of fields [columns] might derive from data entry, while the
rest would be filled automatically via a number of 'calculations'
(while, if, case, etc)

2) I might like to split a word into sections (some of which may change
and others not) and then have a final field [column] that reassembles
them, according to a contextual variable.

In the O'Reilly book, I can find a number of functions described which
look like tools for the job, but they are all mentioned as methods to
SELECT FROM, rather than INSERT INTO.  I haven't found anything (so
far) on columns that can depend on/derive from other columns.  Have I
missed something, or doesn't PostgreSQL do this sort of thing?

If anyone can help me out here, I'd be most grateful. If the worse come
to the worse I could always build those calculations in FileMaker and
then export them to Postgresql. BUT, that's an inelegant solution!

Thanks in anticipation

Neacal

Re: Calculation Functions between Columns

От
Mark Stosberg
Дата:
On 2004-09-26, Neacal <deb@mac.ppc> wrote:
>
> In the O'Reilly book, I can find a number of functions described which
> look like tools for the job, but they are all mentioned as methods to
> SELECT FROM, rather than INSERT INTO.  I haven't found anything (so
> far) on columns that can depend on/derive from other columns.  Have I
> missed something, or doesn't PostgreSQL do this sort of thing?

What you are describing sounds like a good use for a "view" to me.

Here's an example:

CREATE TABLE sales (
    amount            int,
    quantity        int
);

INSERT into sales values (2,3);

CREATE view sub_total as
    SELECT (amount * quantity) as subtotal
    FROM sales;

SELECT * from sub_total;

 subtotal
----------
        6

#################

There are more complex solutions as well, such as using triggers to
automatically update the value of one column based on others.

    Mark