2017-04-20 4 views
0

テーブルの中に内容がわからない行があります。フィールドは、CHAR(8)であり、データは明らかに、英数字でなければなりませんが、いくつかの「ドット」は、以下の選択の結果では、以下の最初の行に応じて表示されます。カラムには印刷できない値が表示されます。どのように表示されますか?

SELECT DISTINCT (USERID) 
FROM USER; 
--------------- 
USERID 
--------------- 
........ 
AC25 
A25A 
A25X 

それは私が得ることができないことが判明この行は、特定の選択では、以下のクエリで結果を返しません:あなたはこのラインから与えられたこのWEIRDを選択した任意の句がある場合

SELECT USERID 
FROM USER 
WHERE USERID = '........'; 
--------------- 
USERID 
--------------- 

あなたは私を伝えることができますか?

私は低価値を試しましたが、DB2は受け入れません。これはテーブルでは見たことがありません。 このケースのオプションを見つけるには、 "not in"というクエリを組み合わせる以外にも役立つでしょうか?

+0

? – maSTAShuFu

+0

私はDB2をインストールしていませんが、 '.....'は実際に空の値(またはヌル値)のコンソール上の出力に過ぎないのでしょうか? 'SELECT * FROM USER WHERE userid = '''や 'userid is null'のようなものを試してみてください... –

+0

もう一つの提案はあなたが選択している項目に' ascii(userid) 'を追加することです。それは最初の文字のASCII値を与えます(フィールドが 'null'ではないと仮定します)。 –

答えて

5

ドットは、表示できない文字を表している可能性があります。

...進値

select distinct 
    userid, hex(userid) 
from user 

あなたはその後、ちょうどその行を選択するリテラルの六角を使用することができます見てみてください、あなたが別のテーブルから選択した場合に何が起こるか

select * 
from user 
where userid = x'C3C8C1D9D3C5E2' 
+0

チャールズ、ありがとうございました あなたの提案で私は実際に値が小さいか16進数であることを確認しました 今、正確にレコードを選択します。 SELECT USERID FROM USER WHERE USERID = x'0000000000000 '; もう一度ありがとうございます:) –

+1

ありがとうございます。すでに投票していますが、あなたのプロフィールの「最後に見たもの」がこの時間の後になったら、これを削除します... –

関連する問題