我有一列以文本表示数据集的类型。
所以我想做这样的事情:
SELECT CAST ('100' AS %INTEGER%);
SELECT CAST (100 AS %TEXT%);
SELECT CAST ('100' AS (SELECT type FROM dataset_types WHERE id = 2));
PostgreSQL可能吗?
答案 0 :(得分:1)
SQL是强类型的,并且是静态的。 Postgres要求知道列数及其数据类型以及调用时间。因此,您需要为此使用一种过程语言扩展中的动态SQL。然后,您仍然面临功能(必须)具有固定返回类型的障碍。相关:
或者,您可以按照两步进行。首先连接查询字符串(与另一个SELECT
查询)。然后执行生成的查询字符串。服务器两次往返。
SELECT '100::' || type FROM dataset_types WHERE id = 2;
-记录结果字符串
执行结果。 (并确保您没有打开任何用于SQL注入的向量!)
关于简写语法: