2017-04-20 68 views
0

我在表格中有一行我無法理解內容。該字段是CHAR(8)和數據應該是很明顯的字母數字,但在選擇下面的幾個「點」的結果根據下面的第一行顯示:列顯示不可打印的值,我如何看到它們是什麼?

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

事實證明,我不能讓

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

你能告訴我,如果有是您選擇這個奇怪從該行給出的任何條款:這條線在一個特定的選擇,它不會在下面的查詢返回的結果?

我試過低價值但DB2不接受,我從來沒有在表中看到過。 除了將查詢與「不在」放在一起之外,你能幫我找到這個案例的選項嗎?

+0

如果你從另一個表中選擇時會發生什麼? – maSTAShuFu

+0

我沒有安裝DB2,但它可能是'.....'只是控制檯上輸出的實際爲空的值(或空值)?也許你會嘗試像'SELECT * FROM USER WHERE userid ='''或'where userid is null' ... –

+0

另一個建議是將'ascii(userid)'添加到您選擇的項目中。這會給你第一個字符的ASCII值(假設該字段不是'null')。 –

回答

5

這些點可能代表不可顯示的字符。

嘗試尋找的十六進制值

select distinct 
    userid, hex(userid) 
from user 

然後,您可以用十六進制文字僅選擇該行...

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

查爾斯,非常感謝你 隨着你的建議,我實際上證實它是一個低值或十六進制(00) 現在我可以做下面的查詢和選擇正確的記錄。 SELECT USERID FROM USER WHERE USERID = x'0000000000000'; 非常感謝你:) –

+1

謝謝。您已經有了我的投票,並且當您的個人資料上的「上次看到」是在此時間之後時,我會將其刪除。 –

相關問題