我有两张桌子,一张用于客户,一张用于物品。
在 Customer 中,我有一个名为“preference”的列,它存储了一个硬标准列表,该列表表示为WHERE
SQL 中的一个子句,例如"item.price<20 and item.category='household'"
.
我想要一个像这样工作的查询:
SELECT * FROM item WHERE interpret('SELECT preference FROM customer WHERE id = 1')
这被翻译成这样:
SELECT * FROM item WHERE item.price < 20 and item.category = 'household'
示例数据模型:
CREATE TABLE customer (
cust_id INT
preference VARCHAR
);
CREATE TABLE item (
item_id INT
price DECIMAL(19,4)
category VARCHAR
);
# Additional columns omitted for brevity
我查找了强制转换和动态 SQL,但我无法弄清楚我应该如何做到这一点。
我正在使用 PostgreSQL 9.5.1