MySQL CASE EnumInt WHEN Varchar ELSE Int 返回为 BLOB - 如何转换为 Varchar?

发布于 2024-12-11 02:14:14 字数 524 浏览 0 评论 0原文

以下返回一个 BLOB,如何将此 else 值转换为 VARCHAR 来解决我的问题?

SELECT
    CASE EnumID
        WHEN 1 THEN 'Red'
        WHEN 2 THEN 'Green'
        WHEN 3 THEN 'Blue'
        ELSE EnumID
    END AS EnumValue
FROM Table

在 MSSQL/TSQL 中,我使用 ELSE CAST([EnumID] AS VARCHAR(100)) ,但 MySQL 抱怨。

我想要的只是一个故障转移,如果这个存储过程不知道新的枚举值来管理代码、主数据库和数据仓库数据持久性。

肯定是一个明显的答案...


显然问题似乎出在使用 VARCHAR?刚刚发现 CAST(EnumID AS CHAR(20)) 在大小写开关中工作正常。

叹息...为什么我要费心发帖,我所需要的只是一个可以与之交谈的橡皮鸭...

The following returns a BLOB, how can I convert this else value to a VARCHAR to fix my problem?

SELECT
    CASE EnumID
        WHEN 1 THEN 'Red'
        WHEN 2 THEN 'Green'
        WHEN 3 THEN 'Blue'
        ELSE EnumID
    END AS EnumValue
FROM Table

In MSSQL/TSQL I use ELSE CAST([EnumID] AS VARCHAR(100)) but MySQL complains.

All I want is a failover should this stored procedure not know a new enum value to manage code vs. main database vs. data warehouse data persistence.

Bound to be an obvious answer...


Apparently the problem seems to be using VARCHAR? Just found that CAST(EnumID AS CHAR(20)) works fine in the case switch.

Sigh... why do I bother posting all I need is a Rubber Duck to talk to...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

·深蓝 2024-12-18 02:14:14

使用 cast

SELECT 
    CAST(CASE EnumID 
        WHEN 1 THEN 'Red' 
        WHEN 2 THEN 'Green' 
        WHEN 3 THEN 'Blue' 
        ELSE EnumID 
    END AS VARCHAR(20)) AS EnumValue
FROM `Table` 

请参阅:http:// dev.mysql.com/doc/refman/5.0/en/cast-functions.html

Use cast

SELECT 
    CAST(CASE EnumID 
        WHEN 1 THEN 'Red' 
        WHEN 2 THEN 'Green' 
        WHEN 3 THEN 'Blue' 
        ELSE EnumID 
    END AS VARCHAR(20)) AS EnumValue
FROM `Table` 

See: http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文