Re: Problem with Subquery
От | Joel Burton |
---|---|
Тема | Re: Problem with Subquery |
Дата | |
Msg-id | Pine.LNX.4.30.0203071426270.21737-100000@temp.joelburton.com обсуждение исходный текст |
Ответ на | Problem with Subquery ("Marc Polatschek" <Marc.Polatschek@computec.de>) |
Список | pgsql-general |
On Thu, 7 Mar 2002, Marc Polatschek wrote: > We recently changed our database system from Oracle 8i to postgreSQL. Im > right now changing our cold fusion code and i have get this problem: > > select ID, > NAME, > WEBSITE_URL, > ( > select count(*) > from MAIN_PC_GAME, > MAIN_COMPANY > where DEVELOPER_ID = MAIN_COMPANY.ID > or PUBLISHER_ID = MAIN_COMPANY.ID > ) as TOTAL > from MAIN_COMPANY > where ( > lower(SOFTWARE_DEVELOPER)='yes' > or lower(SOFTWARE_PUBLISHER)='yes' > ) > > This SQL statement isnt working with postgreSQL but it worked without > any problems in Oracle. Postgres Error Message: > > Unable to identify an operator '=' for types 'character varying' > and 'numeric' > You will have to retype this query using an explicit cast > > I think postgreSQL cant handle the variable MAIN_COMPANY.ID from the > parent Scope. Probably there is a way to mark this variable to find it > in the caller.scope. But i dont know how. Are you sure that both DEVELOPER_ID/PUBLISHER_ID and MAIN_COMPANY.ID are both numeric? Is one a string? If so, cast the numeric into an integer/float. Example CREATE TABLE test (id numeric, str varchar(5)); INSERT INTO test VALUES (1,'1'); SELECT FROM test WHERE id=str; <- same error as you're getting SELECT FROM test WHERE id::int=str; <- works -- Joel BURTON | joel@joelburton.com | joelburton.com | aim: wjoelburton Independent Knowledge Management Consultant
В списке pgsql-general по дате отправления: