所以在我的数据库中,某些行具有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+"');");
答案 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