我有一个有两列的表--应用程序和源。
如果应用程序列尚未包含该字符串,则需要向应用程序列中的值添加一个字符串。我需要这样做的来源是一定的价值。所以不是整个桌子。
例:如果应用程序不包括‘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
发布于 2021-07-29 04:37:17
您可以使用case
更新
UPDATE table_1
SET application = CASE WHEN application LIKE '%CMS%' THEN application ELSE CONCAT(application,',CMS') END
WHERE source IN('acct', 'credit', 'mortgage','loan')或仅选择
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')或所有行
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')中的演示
https://stackoverflow.com/questions/68569266
复制相似问题