2016-04-20 4 views
0

に次のSQLクエリをフィルタリングする方法:のOracle SQL:NUMBER列

SELECT * FROM TABLE WHERE column = '%' 

は、テーブル、テーブルのすべての行を返します。

さて、私の列が数値の場合。 WHERE句ですべての行を返すにはどうすればよいですか?指定されていない場合はデフォルトの30の長さを取る

+0

「WHERE 1 = 1」?どういう意味ですか? – HoneyBadger

+0

いいえ、使用できません。 'WHERE column ='は常にそこにあります。フィルター効果を「キャンセル」する値が必要です。文字列の場合は '%'、正規表現の場合は '*'と同じです。 – Sherlock

+0

'columnはnullではないかcolumnはnullです' –

答えて

1
NumberColumn

SELECT * FROM TABLE WHERE CAST(NumberColumn AS VARCHAR(length)) = '%' 

CAST

使用CAST機能とCONVERT。 (@JaydipJへのクレジット)

+0

キャスト時にも長さを含める必要があります。 'VARCHAR(n)'。 –

+0

はい、長さを追加しましたが、これは機能します。一方、私は 'to_char'がうまくいかなかった理由を理解していませんか? – Sherlock

+0

@NullException使用している間 'Cast'または' 'Convert' VARCHAR'はデフォルトに30文字の長さ –

0
SELECT * FROM TABLE WHERE column = column or column is null 

すべてのデータ型についてすべてを返します。

+0

@MaheswaranRavisankar Thx、答えを編集しました。 –

+1

ですが、1 = 1と同じになります。OPが実際に期待するものは明確ではありません。 –

+0

@MaheswaranRavisankarはい、そうですが、OPには何らかの運動があると思います。彼は1 = 1のところでは使えないと述べた。 –