SQL not recognising table columns in ON statement [duplicate] - sql

This question already has answers here:
Column doesnot exist error in PostgreSQL command
(1 answer)
Postgres query with uppercase letters in Column name
(1 answer)
Closed 11 months ago.
I have this SQL query:
SELECT "Segments.Id", "AggregatedValues.Segment"
FROM "Segments"
INNER JOIN "AggregatedValues" ON "Segments.Id" = "AggregatedValues.Segment";
And I get the following error:
ERROR: column "Segments.Id" does not exist
LINE 1: ... FROM "Segments" INNER JOIN "AggregatedValues" ON "Segments....
^
SQL state: 42703
Character: 99
This is EXTREMELY weird because the column DOES EXIST. The proof is that when selecting the column in the SELECT statement, no errors are thrown. It is also weird because if I change the order and say ON "AggregatedValues.Segment" = "Segments.Id" instead of ON "Segments.Id" = "AggregatedValues.Segment" then AggregatedValues.Segment appears as non existent even tho it also exists.
Any idea? I'm going mad
Thank you very much!!!!

Related

Can't select column with bigint from a specific table [duplicate]

This question already has answers here:
PostgreSQL "Column does not exist" but it actually does
(6 answers)
Postgresql Column Not Found, But Shows in Describe
(1 answer)
SQL query column does not exist error
(1 answer)
Closed 12 months ago.
im currently working on a table in postgres where I want to select some columns and copy those into another table. But when I'm trying to do a select statement on the column I got the following error:
ERROR: column "opentime" does not exist
LINE 2: select openTime from dialy;
^
HINT: Perhaps you meant to reference the column "dialy.openTime".
SQL state: 42703
Character: 9
This happens on every column where the datatype is bigint. the other columns in the table are giving back a result. I also tried to query from queries and pictures from the result are below
select * from dialy;
gives:
select * from dialy; (see picture from url)
select openTime from dialy;
gives:
select openTime from dialy;
This happens only on the columns where the datatype is a bigint. Not on text or double precisions etc. Could somebody help me how to select a column with a bigint as a datatype and explain the reason behind this? tnx in advance!

Postgresql "ERROR: column ... does not exist" In A Simple Query [duplicate]

This question already has answers here:
Postgres error updating column data
(2 answers)
PostgreSQL "column "foo" does not exist" where foo is the value
(1 answer)
postgres column "X" does not exist
(1 answer)
Simple Postgresql Statement - column name does not exists
(2 answers)
Error: Column does not exist in postgresql for update [duplicate]
(1 answer)
Closed 2 years ago.
The query is:
select *
from "someTable"
where "id" = "9gf1gf3123";
Postgresql gives me the error column does not exist while there wasn't a problem with my sql statement. The id exists, the table exists, I want to see everyting in my table, but does not work.
There are a lot of questions about this error but I wasn't able to find a solution.
The problem was, I was writing string with ", not with '.
When I changed the query like:
select *
from "userGroupUserOrganizations"
where "id" = '9fce8e9b-597a-4100-bb3c-efb86aaa83ae';
it worked

Trying to duplicate a table without data [duplicate]

This question already has answers here:
Create table (structure) from existing table
(17 answers)
Closed 3 years ago.
I have a table which I would like to duplicate without any data in it (Only the columns).
So I have 2 types of databases, Oracle and Sql Server.
I have constructed this:
CREATE TABLE TMPTABLE AS SELECT * FROM USERS WHERE 1 = 0
It works fine in the Oracle database, but in the Sql Server I get this error:
Error Number:156,State:1,Class:15 Incorrect syntax near the keyword 'SELECT'.
Sql Server version: 14.0.1000.169.
try this
CREATE TABLE newtable SELECT * FROM oldtable
Without AS

Postgresql Column Doesn't Exist [duplicate]

This question already has answers here:
sql statement error: "column .. does not exist"
(1 answer)
PostgreSQL "Column does not exist" but it actually does
(6 answers)
ERROR: column of relation does not exist PostgreSQL ,Unable to run insert query
(3 answers)
Postgresql Column Not Found, But Shows in Describe
(1 answer)
Closed 4 years ago.
I'm running a simple select query:
SELECT return_part_i.CntrctTrmntnInd FROM return_part_i LIMIT 10;
And getting the following error:
ERROR: column return_part_i.cntrcttrmntnind does not exist LINE 1:
SELECT return_part_i.CntrctTrmntnInd FROM return_part_i LIMI...
^ HINT: Perhaps you meant to reference the column "return_part_i.CntrctTrmntnInd". SQL state: 42703 Character: 8
I have tried the query with and without the table identifier. I am copying the field name directly from the hint. This is happening with numerous fields in the database.
if you really have a camel case in you column name then you must wrap the column name with double quote
SELECT "CntrctTrmntnInd" FROM return_part_i LIMIT 10;
PostgreSQL columns (object) name are case sensitive when specified with double quotes. Unquoted identifiers are automatically used as lowercase so the correct case sequence must be write with double quotes
and as correctly suggested by Raymond Nijland if you want a LIMIT in result you should use an order by
SELECT "CntrctTrmntnInd" FROM return_part_i ORDER BY "CntrctTrmntnInd" LIMIT 10;

Why can't postgresql execute select statement whose 'where' clause has a key-matching predicate? [duplicate]

This question already has an answer here:
Strange behaviour in Postgresql
(1 answer)
Closed 6 years ago.
select * from note where noteKey = 1
This statement gives me the following error.
ERROR: column "notekey" does not exist
LINE 1: select * from note where noteKey = 1
^
HINT: Perhaps you meant to reference the column "note.noteKey".
I tried note.noteKey, but got the same error. (I used postico by the way, and the noteKey is the primary key of the table note).
What could possibly be wrong with the statement?
You need to connect with psql and run \d note.
If that shows the column is called noteKey with an uppercase K then you either have two options
Rename the column ALTER TABLE note RENAME COLUMN "noteKey" TO notekey;
Forever use double quotes " to query it.
In PostgreSQL we never quote column names. This forces them to be caps sensitive. When not quoted, they're automatically lower cased.
This
select * from note where noteKey = 1
Is the same as
select * from note where notekey = 1
Which is different from
select * from note where "noteKey" = 1