Reputation: 73
I have some rows in an SQL table. I have attributes as: id, name, etc. Some of the names (in the name column) are built from some name ("xyz") and the id
id name
333 regularName
555 somename.555
666 myName.666
I want to select only rows that don't include the id inside the name.
So my query was:
select *
from MY_TABLE
where name not like '%.id'
But it refer to id as a string
Is there a way to refer to one of the columns value inside the query?
Upvotes: 0
Views: 55
Reputation: 1401
select * from table
where
not regexp_like(name, '.[0-9]+')
Upvotes: -1
Reputation:
You need to concatenate the ID into the comparison string:
select *
from MY_TABLE
where name not like concat('%.', id::text);
Upvotes: 1