gpt4 book ai didi

sql - Oracle - 将列数据映射到一个值

转载 作者:行者123 更新时间:2023-12-04 22:42:30 36 4
gpt4 key购买 nike

首先让我指出,我的问题将非常非常接近这个问题:map-column-data-to-a-value-oracle

请先快速阅读那一篇。

现在,在我的例子中,我需要完全相同的东西,但不是主要查询。相反,我需要将信息作为查询的一部分。

我有这张表:

someId | someValue | dataType
1 | 500 | 1
2 | someValue | 2

而且我知道数据类型“1”表示“整数”。我也知道 dataType 列中其他值的含义。

所以我想选择表中的所有条目,但将它们的数据类型作为人类可读的值而不是它们的数字:

结果:

1, 500, Integer
2, someString, String

尝试应用我链接的问题的解决方案,我创建了一个类似的子查询

SELECT
someId,
someValue,
(
SELECT CASE
WHEN dataType = 1 THEN 'INTEGER'
WHEN dataType = 2 THEN 'FLOAT'
WHEN dataType = 3 THEN 'TEXT'
ELSE 'DATE'
END
myTable
) as myDataType

我会得到一个返回超过 1 个结果的子查询,Oracle 会提示。

由于我直接通过SQL访问数据库,所以我需要一个“纯SQL”的解决方案。否则我可以通过映射解析值,比如 PHP。但这在这里是不可能的。我正在对数据库进行一些查询,以尝试收集有关我们不知道的数据和结构的信息。所以只有 SQL 可用。

最佳答案

摆脱子查询:

SELECT someId,
someValue,
CASE
WHEN dataType = 1 THEN 'INTEGER'
WHEN dataType = 2 THEN 'FLOAT'
WHEN dataType = 3 THEN 'TEXT'
ELSE 'DATE'
END as Datatype
from myTable

关于sql - Oracle - 将列数据映射到一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42767860/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com