SQL如何基于另一列的值创建布尔型列

3

我有一个SQL查询语句,它检索出一列字符串值。我想在旁边创建一个列,如果该值包含子字符串“MB”,则其取值为1,否则为0。


2
你能提供你的代码吗? - Sunny S.M
3个回答

3
你可以使用类似以下的语法来尝试它:

CASE WHEN THEN

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

一个人怎么知道 poslen 的值? - René Hoffmann
@RenéHoffmann:已更新答案。不过我不确定 OP 如何提取 'MB' 字符串。 - Rahul Tripathi
1
非常感谢!你帮助了一个迷失的灵魂。 :D - Sunny R Gupta

2
您可以像这样输出一个计算值的另一列:
select COLUMN, IF(LOCATE('MB', COLUMN) > 0, 1, 0) as STR_FOUND
  from TABLE

请参阅locateif函数的文档以获取更多信息。

我在MSSQL中没有看到LOCATE函数。 - Nikhil Vartak
1
这不是MSSQL,而是MySql。 - Rahul Tripathi

1
select column, 
       case when column like '%mb%' then 1
       else 0 end 
from table

这适用于MSSQL和MYSQL


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接