我正在使用DBI编写脚本来执行对Oracle数据库的选择查询.我已成功捕获数据但我需要帮助才能更改输出.
以下是示例输出.
Type
2
6
Run Code Online (Sandbox Code Playgroud)
我想显示2 =>好,6 =>坏
任何人都可以建议我映射输出的Perl代码?
小智 6
# Create a hash of the values you want to output
my %human_text = (2 => 'Good', 6 => 'Bad');
# and then access the hash values like this:
print $human_text{2}; #will output 'Good'
print $human_text{6}; #will output 'Bad'
Run Code Online (Sandbox Code Playgroud)
通常最简单的方法是直接更改SQL查询输出的值.使用Oracle,您可以使用DECODE.
SELECT DECODE(MY_TYPE, 2, 'TWO', 6, 'SIX', 'DEFAULT_VALUE') FROM MY_TABLE
Run Code Online (Sandbox Code Playgroud)
标准的SQL方法是使用CASE条件表达式.它更冗长,但更强大,更便携.它适用于Oracle,PostgreSQL和MS-SQL.
SELECT
CASE
WHEN MY_TYPE = 2 THEN 'TWO'
WHEN MY_TYPE = 6 THEN 'SIX'
ELSE 'DEFAULT_VALUE'
END CASE
FROM MY_TABLE
Run Code Online (Sandbox Code Playgroud)
如果您仍想在Perl中执行此操作,则可以创建哈希.代码示例非常简单,并且在我提供的链接中有详细记录.