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;

編集:コメントに追加します。1つの列でそれを行う方法を知っていれば、これは非常に簡単です。すべての列に同じことを適用します。SOでは、宿題が完了することを期待しないでください。代わりに、最終的にはあなた自身がしなければならない問題を解決するための助けを期待してください.

ところで、これが方法です..

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

このスレッド (私のものを含む) には 3 つの優れた方法があり、個人的には他の 2 つがより直感的だと感じています。私が示したのと同じロジックを適用して 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

Android用のsqliteを使用している場合

この記事を見て

于 2012-06-23T11:09:04.303 に答える