Re: syntax pb

Поиск
Список
Период
Сортировка
От Adrian Klaver
Тема Re: syntax pb
Дата
Msg-id 02bd7734-9e59-8bbf-f39b-e0bc484c3912@aklaver.com
обсуждение исходный текст
Ответ на syntax pb  (Marc Millas <marc.millas@mokadb.com>)
Ответы Re: syntax pb
Список pgsql-general
On 5/30/23 06:45, Marc Millas wrote:
> Hi,
> 
> I always have had difficulties to understand syntax. So...
> 
> If I have:
> create table t1 (t text);
> create table t2 (a text, b text, c test, d numeric);

Is c supposed to be text?
Or are you indeed referring to some unspecified type?

> insert into t1('azerty');
> INSERT 0 1
> fine !

Not with that syntax:

insert into t1('azerty');
ERROR:  syntax error at or near "'azerty'"
LINE 1: insert into t1('azerty');

insert into t1 values('azerty');
INSERT 0 1

> 
> 
> so, now, if I write:
> Select distinct test1.t, 'abc' as b, NULL as c, NULL as d
>  From t1 test1;
>     t      |  b   | c  | d
> --------+-----+---+---
>   azerty | abc |   |
> (1 row)
> 
> ok.

Yes

> 
> and , now, if I want to insert that:
> Insert into t2 (a, b, c, d)
> Select distinct test1.t, 'abc' as b, NULL as c, NULL as d
>  From t1 test1;
> 
> I get:
> ERROR:  column "d" is of type numeric but expression is of type text
> LINE 2: Select distinct test1.t, 'abc' as b, NULL as c, NULL as d
> 
> HINT:  You will need to rewrite or cast the expression.
> 
> Can someone give a short SQL syntax hint ?

The hint is that though NULL is unknown it can have a type.

To get this to work I first did:

create table t2 (a text, b text, c text, d numeric);

to have c be text for simplicity sake.

Then  I did:

Insert into t2 (a, b, c, d)
Select distinct test1.t, 'abc' as b, NULL::test, NULL::numeric
 From t1 test1;

which results in:

select * from t2;
    a    |  b  |  c   |  d
--------+-----+------+------
  azerty | abc | NULL | NULL



> 
> thanks,
> 
> 
> 
> Marc MILLAS
> Senior Architect
> +33607850334
> www.mokadb.com <http://www.mokadb.com>
> 

-- 
Adrian Klaver
adrian.klaver@aklaver.com




В списке pgsql-general по дате отправления:

Предыдущее
От: Ray O'Donnell
Дата:
Сообщение: Re: syntax pb
Следующее
От: Adrian Klaver
Дата:
Сообщение: Re: syntax pb