将域微积分转换为 (Postgre-)SQL
Convert Domain Calculus into (Postgre-)SQL
让 table Person
具有属性(列)Name
和 Age
.
给定域演算中的以下表达式:
{[name] | ∃ age (Person(name,age) ∧ age≥18)}
我想创建相应的 SQL 查询。
是否有可能(不问这是否是好的做法)创建这样的 SQL 查询(不仅在这种特定情况下)WITHOUT 知道数据库模式?所以我不需要知道 table Person
的列名为 Name
和 Age
.
我想过通过列索引访问 table,但我很困惑。
感谢@philipxy I have stumbled upon this answer:
WITH p(name,age) AS (SELECT * FROM PERSON)
SELECT name FROM p WHERE age>=18
让 table Person
具有属性(列)Name
和 Age
.
给定域演算中的以下表达式:
{[name] | ∃ age (Person(name,age) ∧ age≥18)}
我想创建相应的 SQL 查询。
是否有可能(不问这是否是好的做法)创建这样的 SQL 查询(不仅在这种特定情况下)WITHOUT 知道数据库模式?所以我不需要知道 table Person
的列名为 Name
和 Age
.
我想过通过列索引访问 table,但我很困惑。
感谢@philipxy I have stumbled upon this answer:
WITH p(name,age) AS (SELECT * FROM PERSON)
SELECT name FROM p WHERE age>=18