mysql - 检查 MySQL 中的子字符串并返回基于它的值

标签 mysql sql string substring

我有一个返回以下值的 SQL 查询:

BC - Worces
BC Bristol
BC Central
BC Torquay
BC-Bath
BC-Exeter
BC-Payroll

所以,我们有一些 BC 只有一个空格,一些带有破折号,一些带有破折号,两边都有空格。返回这些值时,我想将这些 BC 变体替换为“业务连续性:”,后跟巴斯或埃克塞特等。

有没有办法检查返回的值并(我假设在单独的列中)返回基于它的字段?如果每次迭代都相同,我可以只使用 Trim,但正是这种变化让我失望了。

最佳答案

您可以在选择上使用案例

CASE WHEN Left(`colname`, 5) = 'BC - ' THEN CONCAT('Business Continuity: ', SUBSTRING(`colname`, 6))
     WHEN Left(colname, 3) = 'BC ' THEN CONCAT('Business Continuity: ', SUBSTRING(`colname`, 4))
     WHEN Left(`colname`, 3) = 'BC-' THEN CONCAT('Business Continuity: ', SUBSTRING(`colname`, 4))
     ELSE `colname`
END as `colname`

关于mysql - 检查 MySQL 中的子字符串并返回基于它的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35407658/

相关文章:

php - MySQL 数据库中的 Wordpress 膨胀 "session_token"

android - 在Android上查看ORMLite生成的SQL

c# - 将 SqlDataType 转换为 C# 枚举

python - 来自外部调用的MySQL存储过程权限

ruby - 将散列与 ruby​​ 中字符串的键/值合并

php - 使用 PHP 加载数据的 jQuery 分页

MYSQL 选择特定日期之后的行(行类型为 varchar)

mysql - 内部 Join 中三列的总和

Java:比较具有不同顺序的关键字的字符串

c - 为什么我在字符串缓冲区中获得不同的大小?