代码之家  ›  专栏  ›  技术社区  ›  James

显示十六进制而不是文本的视图

  •  0
  • James  · 技术社区  · 8 年前

    我正在创建一个视图,以显示根据资产ID记录的故障信息(这些只是公司内部可能发生故障的ID)。

    这些资产分配了ID(INT 4)和描述(VARCHAR 150)。

    我有另一个表,用于记录存储asset_id(INT4)的故障。

    我把这些桌子连接起来

    select * from faults left join assets on faults.asset_id = assets.id
    

    我还在做一个案例陈述,以决定如何显示描述。

      CASE
          WHEN faults.asset_id = assets.id
          THEN
             assets.description
          WHEN faults.asset_id IS NOT NULL AND assets.id IS NULL
          THEN
             CONCAT('Invalid Asset ID - ', faults.asset_id)
          ELSE
             'No Asset ID assigned'
       END
          AS asset_desc
    

    当我运行这个查询时,我得到的结果很好。

    然而,当我转动 select 语句转换为 view ,我在 asset_desc

    如:

    496e76616c6964204173736574204944202d20313233

    496e76616c6964204173736574204944202d20313234

    我已经研究了一段时间,我可以看到这实际上是十六进制的。我不知道为什么它会转化为这个,或者如何修复它。

    非常感谢任何/所有帮助,

    谢谢

    1 回复  |  直到 8 年前
        1
  •  0
  •   James    8 年前

    如果我删除 CONCAT('Invalid Asset ID - ', faults.asset_id) 并替换为 'Invalid Asset ID' 然后就可以了。我只能接受这样的生活。。。