如何在Perl中将数字映射到它们的字符串等价物?

Spa*_*ace -3 perl

我正在使用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)


Ste*_*epp 5

通常最简单的方法是直接更改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,PostgreSQLMS-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中执行此操作,则可以创建哈希.代码示例非常简单,并且在我提供的链接中有详细记录.