视图显示十六进制而不是文本
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'
那么它就可以工作了。我只能忍受这样的生活......
我正在创建一个视图以显示有关根据资产 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'
那么它就可以工作了。我只能忍受这样的生活......