有这样一个需求,比如一个表有col1,col2,col3字段,
但是这几个字段不一定都有值,即可以为NULL,使用
select语句实现,如下数据情况时:
col1,col2,col3
"abc","def",NULL
NULL,"abc",NULL
"abc",NULL,NULL
返回
1,1,0
0,1,0
1,0,0
请问,这个sql语句怎么写?谢谢!
但是这几个字段不一定都有值,即可以为NULL,使用
select语句实现,如下数据情况时:
col1,col2,col3
"abc","def",NULL
NULL,"abc",NULL
"abc",NULL,NULL
返回
1,1,0
0,1,0
1,0,0
请问,这个sql语句怎么写?谢谢!
解决方案 »
- select 嵌套查询问题
- 求一个MYSQL SQL优化,求大侠指教...
- mysql 是不是不支持游标嵌套???
- 我有一个mysql 的数据库 请给我专成access的 100元 可以吗 在线等
- com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException
- mysql触发器
- 中文乱码的问题
- mysql -u root -p<bookmarks.sql 这么用啊
- 求助:外网链接postgresql数据库失败
- mysql 在navicat 用sql语句创建表提示语法错误,求解决
- mysql数据库删除数据时怎样能够把物理硬盘上占用的空间也清空掉
- MYSQL日期比较问题
select if(isnull(col),0,1) as col ....
col1 char(3),
col2 char(3),
col3 char(3))
engine myisam default charset utf8;
insert into tt
values
("abc","def",NULL),
(NULL,"abc",NULL),
("abc",NULL,NULL);
select
(case when col1 is null then 0 else 1 end)as col1,
(case when col2 is null then 0 else 1 end)as col2,
(case when col3 is null then 0 else 1 end)as col3
from tt;
query result(3 records)
col1 col2 col3
1 1 0
0 1 0
1 0 0
是一个语法还是语法组合?
if then
结构一样的。你看看手册就很明白了。
有两种形式mysql> set @t = 4;
Query OK, 0 rows affected (0.00 sec)mysql> select case @t when 1 then 1 else 3 end;
+----------------------------------+
| case @t when 1 then 1 else 3 end |
+----------------------------------+
| 3 |
+----------------------------------+
1 row in set (0.00 sec)mysql> select case when @t=1 then 1 else 3 end;
+----------------------------------+
| case when @t=1 then 1 else 3 end |
+----------------------------------+
| 3 |
+----------------------------------+
1 row in set (0.00 sec)