when I am using postgresql, I encounter a problem.Here is the code:
WITH t1 AS (
SELECT
TABLE_NAME AS TABELA
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
COLUMN_NAME LIKE 'nu_cns' )
SELECT
TABLE_NAME,
COLUMN_NAME
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME IN t1
If I run it ,I will get a error:
ERROR: syntax error at or near "t1"
LINE 14: TABLE_NAME IN t1
^
SQL state: 42601
Character: 211
But what is weird is that if I replace the t1 with the whole subquery ,it can run successfully, like this:
WITH t1 AS (
SELECT
TABLE_NAME AS TABELA
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
COLUMN_NAME LIKE 'nu_cns' )
SELECT
TABLE_NAME,
COLUMN_NAME
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME IN (
SELECT
TABLE_NAME AS TABELA
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
COLUMN_NAME LIKE 'nu_cns' )
You see, in fact the subquery is exactly same with the t1.So why the former cannot work? Thanks!
Try below: you need to select table_name from t1 in subquery
WITH t1 AS
(
SELECT TABLE_NAME AS TABELA
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE 'nu_cns'
)
SELECT
TABLE_NAME,
COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME IN (select table_name from t1)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With