sql >> Database >  >> RDS >> PostgreSQL

Hoe van tekst naar int te casten als de kolom zowel int- als NULL-waarden bevat in PostgreSQL

Eigenlijk kun je NULL . casten naar int, je kunt gewoon geen lege string casten naar int. Ervan uitgaande dat u NULL in de nieuwe kolom wilt als data1 een lege tekenreeks of NULL bevat, kunt u zoiets als dit doen:

UPDATE table SET data2 = cast(nullif(data1, '') AS int);

Als u een andere logica wilt, kunt u bijvoorbeeld gebruiken (lege tekenreeks converteert naar -1):

UPDATE table SET data2 = CASE WHEN data1 = '' THEN -1 ELSE cast(data1 AS int) END;



  1. Een aanhoudende tijdelijke tafel?

  2. pg-promise:gebruik het resultaat van een zoekopdracht in de volgende zoekopdracht binnen een transactie

  3. Vervanging van \r\n (nieuweregeltekens) na het uitvoeren van json_encode

  4. MySql-tabellen, fout #1064 &fout #1068 Meerdere primaire sleutels gedefinieerd