【问题标题】:SQL how create a Boolean column based on the value of another columnSQL如何根据另一列的值创建布尔列
【发布时间】:2015-12-20 13:02:14
【问题描述】:

我有一个 sql 查询,它检索值是字符串的列。我想在它旁边创建一个列,如果值中包含子字符串“MB”,则值为 1,否则为 0

【问题讨论】:

  • 你能提供你的代码吗..

标签: mysql sql boolean


【解决方案1】:

你可以用case when then 这样试试:

select case when INSTR('mycol', 'MB') > 0 then 1 
       else 0 
       end as myBoolCol

【讨论】:

  • 怎么知道poslen
  • @RenéHoffmann:- 更新了答案。但是我不确定 OP 是如何提取 'MB' 字符串的。
  • 非常感谢!你帮助了一个迷失的灵魂。 :D
【解决方案2】:

您可以使用这样的计算值输出另一列:

select COLUMN, IF(LOCATE('MB', COLUMN) > 0, 1, 0) as STR_FOUND
  from TABLE

有关更多信息,请参阅 locateif 的文档。

【讨论】:

  • 我在 MSSQL 中没有看到 LOCATE 函数
  • 这不是 MSSQL。这是MySql
【解决方案3】:
select column, 
       case when column like '%mb%' then 1
       else 0 end 
from table

这适用于 MSSQL 和 MYSQL

【讨论】:

    猜你喜欢
    • 2019-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-30
    • 2015-12-02
    • 1970-01-01
    • 2021-12-02
    相关资源
    最近更新 更多