Thread: referencing column names properly
I have a table called logs with several columns whose names have '-' in them, e.g. User-Name I'm having trouble referencing these columns with SELECT statements. What would the proper way to address these in a statement like this? SELECT User-Name, max(Date), max(Time) from logs; I want to return the last login date and time for each username. Thanks Stephen Sill II
On Sat, Feb 08, 2003 at 18:34:31 -0500, "Sill-II, Stephen" <Stephen.Sill-II@ost.dot.gov> wrote: > I have a table called logs with several columns whose names have '-' in > them, e.g. User-Name > > I'm having trouble referencing these columns with SELECT statements. > > What would the proper way to address these in a statement like this? > > SELECT User-Name, max(Date), max(Time) from logs; You need to use double quotes around the column name. When you do that case will become significant. If you didn't quote the column name on the create table command, then the name would have been converted to lower case.
On Sat, Feb 08, 2003 at 06:34:31PM -0500, Sill-II, Stephen wrote: > I have a table called logs with several columns whose names have '-' in > them, e.g. User-Name > > I'm having trouble referencing these columns with SELECT statements. > > What would the proper way to address these in a statement like this? > > SELECT User-Name, max(Date), max(Time) from logs; SELECT "User-Name", max("Date"), max("Time") from logs; Assuming the MulTiCasIng you show is also in the table. SQL lets you put anything at all in an identifier (table or column name) as long as you quote it with double-quotes (") Ross
Thanks much! After much experimentation, I figured it out. I remember reading in the postgres oreily book that if you don't quote the identifiers, that it converts them all to lowercase for processing. Does the dash in the name also require the name to be quoted? Thanks again! Stephen Sill II -----Original Message----- From: Ross J. Reedstrom To: Sill-II, Stephen Cc: 'pgsql-sql@postgresql.org' Sent: 2/9/2003 12:50 AM Subject: Re: [SQL] referencing column names properly On Sat, Feb 08, 2003 at 06:34:31PM -0500, Sill-II, Stephen wrote: > I have a table called logs with several columns whose names have '-' in > them, e.g. User-Name > > I'm having trouble referencing these columns with SELECT statements. > > What would the proper way to address these in a statement like this? > > SELECT User-Name, max(Date), max(Time) from logs; SELECT "User-Name", max("Date"), max("Time") from logs; Assuming the MulTiCasIng you show is also in the table. SQL lets you put anything at all in an identifier (table or column name) as long as you quote it with double-quotes (") Ross
On Sun, Feb 09, 2003 at 09:18:05AM -0500, Sill-II, Stephen wrote: > Thanks much! After much experimentation, I figured it out. I remember > reading in the postgres oreily book that if you don't quote the identifiers, > that it converts them all to lowercase for processing. Does the dash in the > name also require the name to be quoted? Yup, so the expression parser can differentiate between a-b (column"a" - column "b") and a-b (column named "a-b"). Ross