2012-06-23 48 views
1

所以在我的數據庫中有些行有NULL值,當我從表中選擇*時,NULL值也顯示爲文本「null」。所以我想隱藏所有的NULL值。有沒有人有想法查詢?謝謝!如何選擇所有值並在SQL中隱藏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

隱藏文本「null」並顯示空的數據,你必須去你的客戶端設置/偏好 – Aprillion

+0

@DheereshSingh但如果我這樣做,那麼我有NULL值的所有列都沒有顯示,我只想隱藏NULL值的字段 – user1414682

+0

@deathApril我在eclipse中工作..哪裏有設置/首選項? – user1414682

回答

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 

在這個線程(包括我)三個好方法,我個人覺得其他兩個是更加直觀。通過應用與我所顯示的相同的邏輯來使用它。

+0

我編輯的職位,這是我的代碼,根據我的代碼 – user1414682

+0

@ user1414682,我需要什麼來替換「字段」,所以你想要哪個字段隱藏?所有字段的NULL值? – nawfal

+0

是的,來自所有字段的NULL值 – user1414682

3

SQLite中,你應該能夠做這樣的事情:

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

取自[此源](http://www.sqlite.org/lang_corefunc.html#ifnull);我對SQLite – fudo

+0

不瞭解太多nawfal的解決方案也可以工作,它與DBMS無關,是純SQL。 – fudo

+0

使用標準'coalesce'代替'ifnull'(語法相同,但可能超過2列) – Aprillion

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()函數可以做同樣的事情。

+0

+1,更直觀! – nawfal