首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有IF条件和WHERE条件的CONCAT列

带有IF条件和WHERE条件的CONCAT列
EN

Stack Overflow用户
提问于 2021-07-29 02:19:42
回答 1查看 139关注 0票数 0

我有一个有两列的表--应用程序和源。

如果应用程序列尚未包含该字符串,则需要向应用程序列中的值添加一个字符串。我需要这样做的来源是一定的价值。所以不是整个桌子。

例:如果应用程序不包括‘string2 2’,那么在源代码=‘string2 1’的地方,将'string2‘连接到应用程序。

FYI -在应用中的值看起来像‘苹果,香蕉,饼干’,其中没有空格。如果string2是“cookie”,那么我需要一个命令来识别该值中的“cookie”,并跳过该列。

示例:表名: table_1列:应用程序,源b

如果来源= 'acct',‘信用’,‘抵押’或‘贷款’,如果申请没有'CMS‘,那么附加'CMS’。否则,如果它有'CMS‘,什么都不做。

因此,如果源值= 'MMA,CMS,ABC',什么也不做,因为它包括'CMS‘。如果源值= 'CBS,ABC,NBC‘然后追加,CMS’-> 'CBS,ABC,NBC,CMS‘。当然,这只是来源=‘会计’,‘信用’,‘抵押’或‘贷款’的地方。

Table_1 (前)

申请资料来源:CMS,NBC,ABC,acct‘acct,ABC,NBC,ABC,MMA,CMS,MMA,CMS,MMA,CMS,MMA,MMA,

Table_1 (后)

申请资料来源:CMS,NBC,ABC,acct,ABC,CMS,MMA,MMA

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-29 04:37:17

您可以使用case

更新

代码语言:javascript
复制
UPDATE table_1
SET application = CASE WHEN application LIKE '%CMS%' THEN application ELSE CONCAT(application,',CMS') END
WHERE source IN('acct', 'credit', 'mortgage','loan')

或仅选择

代码语言:javascript
复制
SELECT 
    CASE WHEN application LIKE '%CMS%' THEN application ELSE CONCAT(application,',CMS') END AS application,
    source
FROM table_1
WHERE source IN('acct', 'credit', 'mortgage','loan')

或所有行

代码语言:javascript
复制
SELECT 
    CASE WHEN application LIKE '%CMS%' THEN application ELSE CONCAT(application,',CMS') END AS application,
    source
FROM table_1
WHERE source IN('acct', 'credit', 'mortgage','loan')

UNION

SELECT *
FROM table_1
WHERE source NOT IN('acct', 'credit', 'mortgage','loan')

中的演示

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68569266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档