我會做這樣的事情:SQLite的 - SQL問題101
select * from cars_table where body not equal to null
。select * from cars_table where values not equal to null And id = "3"
我知道「不等於」語法是<>
,但我得到一個空的結果。
對於第二部分,我想獲得一個結果集,它只返回具有值的列。所以,如果該值爲空,則不要包含該列。
感謝
我會做這樣的事情:SQLite的 - SQL問題101
select * from cars_table where body not equal to null
。select * from cars_table where values not equal to null And id = "3"
我知道「不等於」語法是<>
,但我得到一個空的結果。
對於第二部分,我想獲得一個結果集,它只返回具有值的列。所以,如果該值爲空,則不要包含該列。
感謝
不能使用相等運算符爲空,則必須使用is null
和is not null
。
所以,你的第一個查詢將是:
select * from cars_table where body is not null;
有沒有容易的方式做你的第二個操作(這還不包括空列)。我假設你的意思是,如果所有行對於該列都有NULL,則不顯示列,因爲在逐行基礎上執行此操作更加困難。 select語句期望顯示一列列表,並將忠實地顯示它們是否爲空。
想到的唯一可能性是一系列(每列一列)選擇並使用分組來確定該列是否只有空值,然後動態構建一個只包含不符合該條件的列的新查詢。
但是,這是非常混亂,並不適合於SQL - 也許如果你可以告訴我們的請求背後的理由,可能有另一種解決方案。
相較於NULL
不與<>
完成,但is null
和is not null
:
select *
from cars_table
where body is not null
和:
select *
from cars_table
where values is not null
and id = '3'
NULL不是正常值,且必須處理與標準值不同。
在SQL中,NULL
是未知值。它不等於任何其他價值,也不等於任何其他價值。如果所比較的任一值爲NULL
,則所有比較運算符(=,<>,<,>等)均返回false。 (我不知道你是幾歲,所以我不能說你是24歲,但我也不能說你不是24歲。)
如前所述,你必須使用IS NULL
或IS NOT NULL
而不是測試NULL
值。
謝謝大家的回答。
嗯,我有一堆列的表。 我要去搜索一輛特定的汽車,並獲得該汽車的價值......
車|手動|自動|轎車|動力制動器|噴氣發動機
honda | true | false | false | true |假
mazda | false | true | false | true |真正
所以,我想做的事 - > SELECT * FROM car_table其中汽車=「馬自達」和值不等於假
於是我只是遍歷遊標結果並填寫完表格與適當的列和值。其中值是列。我想我用替換值*爲列
我知道我能做到這一點編程,但想我可以這樣做只是通過SQL
我想值來表示的列值 – qstar 2010-03-14 20:10:12