如何在SQL中选择所有值并隐藏NULL值?

时间:2012-06-23 10:54:47

标签: sql sqlite

所以在我的数据库中,某些行具有NULL值,当我从表中选择*时,该NULL值也显示为文本“null”。所以我想隐藏所有NULL值。有没有人有查询的想法?谢谢!

这是我在DB中的输入:

db.execSQL("CREATE TABLE IF NOT EXISTS table (name VARCHAR, kg VARCHAR,   pod                 VARCHAR,reps VARCHAR, time VARCHAR );");
  db.execSQL("INSERT INTO table VALUES('name 1',NULL,NULL , NULL , '"+s+"');");
 db.execSQL("INSERT INTO table VALUES(NULL,'S 1','"+ee5+"' , '"+ee+"' , '"+s+"');");
 db.execSQL("INSERT INTO table VALUES(NULL,'S 2','"+ee6+"' , '"+ee2+"', '"+s+"');");
 db.execSQL("INSERT INTO table VALUES(NULL,'S 3','"+ee7+"' , '"+ee3+"', '"+s+"');");
 db.execSQL("INSERT INTO table VALUES(NULL,'S 4','"+ee8+"' , '"+ee4+"', '"+s+"');");

4 个答案:

答案 0 :(得分:4)

这取决于列的数据类型。

-- If the data type is integer:
SELECT COALESCE(the_column, 0)
FROM the_table;

-- or, if the column is a char or varchar type:
SELECT  COALESCE(the_column, 'some text here')
FROM the_table;

-- or, if it is a date:
SELECT  COALESCE(the_column, '1900-01-01')
FROM the_table;
BTW:有些数据库有IFNULL()函数可以做同样的事情。

答案 1 :(得分:3)

这就是你要找的东西:

SELECT x, y, etc, CASE WHEN field IS NOT NULL THEN field ELSE '' END AS hehe FROM table;

编辑:添加到您的评论中,一旦您知道如何为一个列执行此操作,这非常简单。对所有列应用相同的内容。在SO中,不要期望完成家庭作业,而是期望帮助解决您最终自己必须要做的问题。

不过,这是怎么回事..

SELECT COALESCE(name, ''), COALESCE(kg, ''), COALESCE(pod, ''), COALESCE(reps, ''), 
       COALESCE(time, '') 
FROM   table

你在这个帖子中有三个好的方法(包括我的),我个人觉得其他两个更直观。通过应用与我所示相同的逻辑来使用any。

答案 2 :(得分:3)

在SQLite中你应该能够做到这样的事情:

SELECT col1, col2, ..., ifnull(coln, '') FROM TABLE

答案 3 :(得分:-2)

SELECT* FROM TableName
WHERE ValueCol IS NOT NULL

http://www.w3schools.com/sql/sql_null_values.asp

如果你正在使用sqlite for android

查看此Article