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

View showing hex instead of text

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

资产分配有 ID(INT 4) 和描述(VARCHAR 150)。

我有另一个 table 用于记录存储 asset_id (INT 4) 的故障。

我通过

将这些 table 连接在一起
select * from faults left join assets on faults.asset_id = assets.id

我也在做case statement来决定如何展示描述。

  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

我研究了一段时间,发现它实际上是十六进制的。我不确定为什么它会转换成这个,或者如何修复它。

Any/All 非常感谢帮助,

谢谢

看起来是连接导致了这个错误,如果我删除 CONCAT('Invalid Asset ID - ', faults.asset_id) 并替换为 'Invalid Asset ID' 那么它就可以工作了。我只能忍受这样的生活......