1

所以在我的数据库中,有些行有 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

4 回答 4

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;

顺便说一句:某些数据库具有执行相同操作的 IFNULL() 函数。

于 2012-06-23T11:26:32.097 回答
3

这就是您要查找的内容:

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

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

顺便说一句,这是如何..

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

你在这个线程中有三个很好的方法(包括我的),我个人觉得另外两个更直观。通过应用与我展示的相同的逻辑来使用 any。

于 2012-06-23T11:14:58.797 回答
3

在 SQLite 中,您应该能够执行以下操作:

SELECT col1, col2, ..., ifnull(coln, '') FROM TABLE
于 2012-06-23T11:18:44.167 回答
-2
SELECT* FROM TableName
WHERE ValueCol IS NOT NULL

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

如果您正在使用 sqlite for android

看这篇文章

于 2012-06-23T11:09:04.303 回答