将值映射到“即时”文本

Posted

技术标签:

【中文标题】将值映射到“即时”文本【英文标题】:Map values to text "on the fly" 【发布时间】:2014-01-07 22:42:04 【问题描述】:

我有下表:

store | dow |  turnover
------+-----+-----------
 1    |   1 | Eu59.426,00
 1    |   2 | Eu33.074,00
 1    |   5 | Eu38.855,00
 1    |   6 | Eu64.431,00

请告诉我如何将星期几表示为星期日、星期一等,这样我就不必使用此映射创建新表。

【问题讨论】:

【参考方案1】:

试试这个:

SELECT store, (CASE dow WHEN 1 THEN 'Sunday' 
                        WHEN 2 THEN 'Monday' 
                        WHEN 3 THEN 'Tuesday' 
                        WHEN 4 THEN 'Wednesday' 
                        WHEN 5 THEN 'Thursday' 
                        WHEN 6 THEN 'Friday'  
                        WHEN 7 THEN 'Saturday' 
              END), turnover 
FROM tableA;

【讨论】:

要扩展此答案,如果您愿意,可以使用 CASE 语句提供您自己的自定义星期几名称。例如:SELECT store, CASE dow WHEN 1 THEN 'Sun' WHEN 2 THEN 'Mon' WHEN 3 THEN 'Tue' ... END, turnover FROM tableA @Saharsh Shah,不起作用 :( 没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。 in DAYNAME(dow)... dow 必须是日期格式,但是这里只提供索引,它将如何返回日期名称? 还有其他方法吗?【参考方案2】:

试试这个:

SELECT store, 
       CASE dow 
       WHEN 1 THEN 'Sunday' 
       WHEN 2 THEN 'Monday' 
       WHEN 3 THEN 'Tuesday' 
       WHEN 4 THEN 'Wednesday' 
       WHEN 5 THEN 'Thursday' 
       WHEN 6 THEN 'Friday'  
       WHEN 7 THEN 'Saturday' 
     END, turnover 
FROM <tablename>;

注意:在 mysql 中,我认为没有可以在索引值上返回日期名称的函数,, DAYNAME('date')-- 仅用于获取任何日期的日期名称;

【讨论】:

以上是关于将值映射到“即时”文本的主要内容,如果未能解决你的问题,请参考以下文章

将值映射到 ArrayList

Gatling 2.0.3 - 将值映射到模板

将值映射到色标

Informatica 是不是可以将值从 informatica 映射动态传递到 oracle 中的视图

Immutable.js 将值映射到数组

如何将值映射到python中的模糊项