【发布时间】:2019-09-01 06:47:41
【问题描述】:
我有一列以文本形式包含数据集的类型。
所以我想做这样的事情:
SELECT CAST ('100' AS %INTEGER%);
SELECT CAST (100 AS %TEXT%);
SELECT CAST ('100' AS (SELECT type FROM dataset_types WHERE id = 2));
PostgreSQL 可以吗?
【问题讨论】:
-
我目前不知道这是否可行。我很好奇您如何定义
WHERE id = 2我的意思是,如果您知道要查看的数据类型意味着您已经知道数据类型对吗? -
而且,这可能会对您有所帮助:stackoverflow.com/questions/3827828/…
-
这是不可能的——除非你使用动态 SQL。列的类型固定在
SELECT;它不是可变的。 -
不,这是不可能的。 PostgreSQL 的语法解析器在这里拒绝任何动态元素。即使有可能,您也必须确保源类型和目标类型之间的转换实际上是可能的。您认为需要数据库而不是应用程序来执行此操作是否有具体原因?
标签: sql database postgresql