问题的主题可能与我的怀疑不相关。
我正在尝试创建一个从Db表中读取值的视图,其中列中的一个值为1,2,3,实际上表示1 =请求,2 =响应,3 =错误。
我将使用此视图进行报告,因此在报告中我不想显示数字值,取而代之的是,我应该得到请求,响应或错误。
你能帮我解决一下如何创建一个视图吗?
提前感谢,因为我对数据库查询不是很熟悉。
答案 0 :(得分:2)
以下是使用CASE语句的示例。
WITH test_data
AS (SELECT 1 v1 FROM DUAL
UNION
SELECT 2 v1 FROM DUAL
UNION
SELECT 3 v1 FROM DUAL)
SELECT CASE v1
WHEN 1 THEN 'request'
WHEN 2 THEN 'response'
WHEN 3 THEN 'error'
END
FROM test_data
所以视图看起来像:
CREATE VIEW MyView AS
SELECT CASE v1
WHEN 1 THEN 'request'
WHEN 2 THEN 'response'
WHEN 3 THEN 'error'
END
FROM test_data; -- etc.
但是,我认为应该创建一个单独的查找/连接表来映射内部值和用户值,而不是这种方法。当您需要为代码#4等添加案例时会发生什么?您不希望每次都修改您的查询。长远思考。