User Information
| Display Name: | Michael Fuhr |
|---|
| Partial Email Address: | m...@fuhr.org |
| Posts: |
|
| 1) Michael Fuhr Re: [GENERAL] Order of SUBSTR and UPPER in statement |
|
|
| I still don't believe that order of UPPER and SUBSTR is relevant to the syntax error. Please post... |
|
|
|
|
|
|
|
On Thu, Feb 14, 2008 at 04:48:33PM +0100, Hermann Muster wrote: > Michael Fuhr schrieb: >>> COALESCE(UPPER(SUBSTR("X"."Firma",1,7)) = >> >> I haven't examined the entire query but the above line appears to >> be the problem. Did you mean to write the following? >> >> COALESCE(UPPER(SUBSTR("X"."Firma",1,7)),'') = >> > Yes, that's what I wanted to write. However, it only works when I change > the order of UPPER and SUBSTR in the statement.
I still don't believe that order of UPPER and SUBSTR is relevant to the syntax error. Please post two complete queries, one with the order that works and one with the order that doesn't. -- Michael Fuhr
---------------------------(end of broadcast)--------------------------- TIP 5: don't forget to increase your free space map settings
|
|
|
| 2) Michael Fuhr Re: [GENERAL] Order of SUBSTR and UPPER in statement |
|
|
| to and learn from the discussion.] I haven't examined the entire query but the above line appears... |
|
|
|
|
|
|
|
[Please copy the mailing list on replies so others can contribute to and learn from the discussion.] On Thu, Feb 14, 2008 at 09:56:36AM +0100, Hermann Muster wrote: > The statement I'm using is the following:> SELECT > "FIRMEN"."Firma","FIRMEN"."Firma2","FIRMEN"."Firma3","FIRMEN"."Such","FIRMEN"."Land","FIRMEN"."PLZZ","FIRMEN"."Ort","FIRMEN"."Strasse","FIRMEN"."PLZP","FIRMEN"."Postfach","FIRMEN"."Telefon","FIRMEN"."Telefax","FIRMEN"."eMail","FIRMEN"."Internet","FIRMEN"."KundenNr","FIRMEN"."UST_ID","FIRMEN"."ABC","FIRMEN"."Zusatz1","FIRMEN"."Zusatz2","FIRMEN"."Zusatz3","FIRMEN"."Zusatz4","FIRMEN"."Zusatz5","FIRMEN"."BLZ","FIRMEN"."KtoNr","FIRMEN"."Bank","FIRMEN"."IBAN","FIRMEN"."Kreditkart","FIRMEN"."KreditkNr","FIRMEN"."AdressTyp","FIRMEN"."VKGebiet","FIRMEN"."Zahlungart","FIRMEN"."UmsatzSoll","FIRMEN"."BonAnfrDat","FIRMEN"."BonInfoDat","FIRMEN"."BonIndex","FIRMEN"."BonLimit","FIRMEN"."BonOK","FIRMEN"."BonInfo","FIRMEN"."BonKapital","FIRMEN"."BonUmsJahr","FIRMEN"."BonMAZahl","FIRMEN"."BonZahlung","FIRMEN"."Betreuer","FIRMEN"."Com_Wahl","FIRMEN"."Symbol","FIRMEN"."ErfDat","FIRMEN"."ErfUser","FIRMEN"."L_Dat","FIRMEN"."L_User","FIRMEN"."RecordID","FIRMEN"."Z_Import_PK","FIRMEN"."Z_Import_FK","FIRMEN"."KreditkInh","FIRMEN"."Br> anchenTyp1","FIRMEN"."BranchenTyp2","FIRMEN"."KK_Exp_J","FIRMEN"."KK_Exp_M","FIRMEN"."Kategorie" > FROM "FIRMEN"> WHERE "FIRMEN"."RecordID" IN (SELECT DISTINCT "X"."RecordID" FROM "FIRMEN" > "X" INNER JOIN "FIRMEN" "Y" ON> COALESCE(UPPER(SUBSTR("X"."Firma",1,7)) = I haven't examined the entire query but the above line appears to be the problem. Did you mean to write the following? COALESCE(UPPER(SUBSTR("X"."Firma",1,7)),'') =
> COALESCE(UPPER(SUBSTR("Y"."Firma",1,7)),'') AND > COALESCE(UPPER("X"."PLZZ"),'') = COALESCE(UPPER("Y"."PLZZ"),'') AND > COALESCE(UPPER("X"."PLZP"),'') = COALESCE(UPPER("Y"."PLZP"),'') AND > "X"."RecordID" <> "Y"."RecordID")
-- Michael Fuhr
---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend
|
|
|
| 3) Michael Fuhr Re: [GENERAL] Order of SUBSTR and UPPER in statement |
|
|
| Please show a complete statement and not just a portion of it. This expression works for me: test=>... |
|
|
|
|
|
|
|
On Wed, Feb 13, 2008 at 04:19:09PM +0100, Hermann Muster wrote: > I encountered something I can't really explain. I use the following > statement in my application: > > COALESCE(UPPER(SUBSTR("Y"."Firma",1,7)),'') > > This returns "ERROR: syntax error at end of input"
Please show a complete statement and not just a portion of it. This expression works for me: test=> CREATE TABLE "Y" ("Firma" varchar); CREATE TABLE test=> INSERT INTO "Y" ("Firma") VALUES ('abcdefghij'); INSERT 0 1 test=> SELECT COALESCE(UPPER(SUBSTR("Y"."Firma",1,7)),'') FROM "Y"; coalesce ---------- ABCDEFG (1 row) > However, using the following statement is fine:> > COALESCE(SUBSTR(UPPER("X"."Firma"), 1, 7), '')> > > The fieldtype of "Firma" is character varying.> > The only difference is the order of UPPER and SUBSTR.I doubt that; I suspect the query that's failing has some other problem that's causing the syntax error. Take a closer look, especially at the end of the query string ("syntax error at end of input"). -- Michael Fuhr
---------------------------(end of broadcast)--------------------------- TIP 2: Don't 'kill -9' the postmaster
|
|
|
| 4) Michael Fuhr Re: [GENERAL] Change column type to numeric |
|
|
| You could convert the empty strings to NULL: USING cast(nullif(amount, '') AS numeric) |
|
|
|
|
|
|
|
On Sun, Feb 10, 2008 at 11:37:45AM -0700, Jake Franklin wrote: > test=# alter table foo alter column amount type numeric(10,2) USING > cast(amount AS numeric); > ERROR: invalid input syntax for type numeric: "" > > I'm assuming that it's trying to cast a blank value as numeric and > failing. Does anyone know of an easy way to work around this?
You could convert the empty strings to NULL: USING cast(nullif(amount, '') AS numeric) -- Michael Fuhr
---------------------------(end of broadcast)--------------------------- TIP 5: don't forget to increase your free space map settings
|
|
|
| 5) Michael Fuhr Re: [GENERAL] Analyze Explanation |
|
|
| The PostGIS function compute_geometry_stats() logs such a message. I'd guess you're using PostGIS... |
|
|
|
|
|
|
|
On Tue, Jan 29, 2008 at 10:11:38AM -0800, Willem Buitendyk wrote: > When I run Analyze I get the following notice repeated for many of my > tables: > > NOTICE: no notnull values, invalid stats > > Is this just refering to my empty tables?
The PostGIS function compute_geometry_stats() logs such a message. I'd guess you're using PostGIS and those tables have NULL in all rows' geometry columns. -- Michael Fuhr
---------------------------(end of broadcast)--------------------------- TIP 5: don't forget to increase your free space map settings
|
|
|
|
 | |