Casting int to bool with join...

Started by Randall Skeltonabout 22 years ago3 messagesgeneral
Jump to latest
#1Randall Skelton
skelton@brutus.uwaterloo.ca

I am trying to update rows in a new table and re-cast to boolean at the
same time. I am absolutely certain that the integers are 0 or 1. Is
there a one line way to do this?

UPDATE app_id_800 SET cal_byte_w_err = cal_byte_w_err.value::boolean
FROM cal_byte_w_err
WHERE app_id_800.timestamp BETWEEN '2004-01-01 00:00:00' AND
'2004-01-01 00:00:05'
AND app_id_800.timestamp = cal_byte_w_err.timestamp;

Many thanks... I've spent way too long trying to figure this out :(

Cheers,
Randall

#2Randall Skelton
skelton@brutus.uwaterloo.ca
In reply to: Randall Skelton (#1)
Re: Casting int to bool with join...

Got it.

UPDATE app_id_800 SET cal_byte_w_err = (CASE WHEN
cal_byte_w_err.value=1 THEN 't'::boolean ELSE 'f'::boolean END)
FROM cal_byte_w_err
WHERE app_id_800.timestamp BETWEEN '2004-01-01 00:00:00' AND
'2004-01-01 00:00:05'
AND app_id_800.timestamp = cal_byte_w_err.timestamp;

Have a good weekend all.
Randall

On 2 Apr 2004, at 18:05, Randall Skelton wrote:

Show quoted text

I am trying to update rows in a new table and re-cast to boolean at
the same time. I am absolutely certain that the integers are 0 or 1.
Is there a one line way to do this?

UPDATE app_id_800 SET cal_byte_w_err = cal_byte_w_err.value::boolean
FROM cal_byte_w_err
WHERE app_id_800.timestamp BETWEEN '2004-01-01 00:00:00' AND
'2004-01-01 00:00:05'
AND app_id_800.timestamp = cal_byte_w_err.timestamp;

Many thanks... I've spent way too long trying to figure this out :(

Cheers,
Randall

#3Manfred Koizar
mkoi-pg@aon.at
In reply to: Randall Skelton (#2)
Re: Casting int to bool with join...

On Fri, 2 Apr 2004 18:21:34 -0500, Randall Skelton
<skelton@brutus.uwaterloo.ca> wrote:

UPDATE app_id_800 SET cal_byte_w_err = (CASE WHEN
cal_byte_w_err.value=1 THEN 't'::boolean ELSE 'f'::boolean END)

or simply

UPDATE app_id_800
SET cal_byte_w_err = (cal_byte_w_err.value=1)

Servus
Manfred