首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Oracle SQL数据库中创建一个布尔值的新列,如果另一列中的字符串项包含"100g“,则放入1。否则,放入0

如何在Oracle SQL数据库中创建一个布尔值的新列,如果另一列中的字符串项包含"100g“,则放入1。否则,放入0
EN

Stack Overflow用户
提问于 2021-04-07 12:45:49
回答 2查看 57关注 0票数 0

我在Oracle云中的一个自动化数据库中有一个SQL格式的大表。我创建了另一个名为portion_size的专栏。我想创建一个扫描描述的脚本,如果它包含"100g",我想在portion_size列中放一个1。否则,我想写一个0。我想我需要对CONTAINS命令和CASE命令做些什么。然而,我不确定如何将所有这些放在一起。我是SQL的新手。

Here is the table I am working with.

我该怎么写呢?

提前谢谢你了。

EN

回答 2

Stack Overflow用户

发布于 2021-04-07 13:56:30

如果您的Oracle版本允许,请考虑对此使用虚拟列(例如here)。一旦准备就绪,就不必在每次向表中插入新行时都进行更新(或者:在插入之前计算portion_size列的值)。

可以使用ALTER table ...将虚拟列添加到现有表中

代码语言:javascript
复制
alter table vcdemo2
add portion_size number as (
    CASE WHEN LOWER(DESCRIPTION) LIKE '%100g%' THEN 1 ELSE 0 END
) virtual ;

有关更多详细信息,请参阅DBfiddle

票数 4
EN

Stack Overflow用户

发布于 2021-04-07 13:25:25

我相信这解决了问题。

代码语言:javascript
复制
UPDATE NUTRITION
SET PORTION_SIZE = (CASE WHEN LOWER(DESCRIPTION) LIKE '%100g%' THEN 1 ELSE 0 
END);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66979693

复制
相关文章

相似问题

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