首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >作为从另一个表中选择的sql大小写条件

作为从另一个表中选择的sql大小写条件
EN

Stack Overflow用户
提问于 2018-06-07 18:43:56
回答 1查看 94关注 0票数 1

我有一个有案件条件的工作程序。它会在每次插入时触发,并检查一列中的特定值,然后更新另一列。整个SP有20-30个病例。我正在从MySQL转到PostgreSQL,我想知道是否有可能将其自动化,并在内部进行选择?(见下文代码)

代码语言:javascript
复制
SELECT col1,col2 FORM myCASEtbl
ABC | 1
DEF | 2
123 | 3

由此:

代码语言:javascript
复制
UPDATE myTable
SET columnName = CASE
WHEN OtherColumn LIKE '%ABC%' THEN columnName = 1
WHEN OtherColumn LIKE '%DEF%' THEN columnName = 2
WHEN OtherColumn LIKE '%123%' THEN columnName = 4
...
ELSE columnName
END
WHERE columnName IS NULL;

对此:

代码语言:javascript
复制
UPDATE myTable
SET columnName = CASE
SELECT 'WHEN OtherColumn LIKE ' + col1 + ' THEN columnName = ' + col2 FROM myCASEtbl
ELSE columnName
END 
WHERE columnName IS NULL
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-07 18:48:00

是的,您可以使用子查询:

代码语言:javascript
复制
UPDATE myTable
    SET columnName = (SELECT ct.col2
                      FROM myCaseTable ct
                      WHERE mytable.OtherColumn like '%' || ct.col || '%'
                      LIMIT 1
                     )
    WHERE columnName IS NULL;

LIMIT是保证子查询返回一行的一种方便的方法。

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

https://stackoverflow.com/questions/50748207

复制
相关文章

相似问题

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