2016-05-13 71 views
0

在具有日語數據的字段之一中,我在SQL Server 2005中有一些特殊字符。 由於哪個多維數據集處理失敗並且沒有找到屬性鍵錯誤。在SQL Server 2005中搜索特殊字符2005

Analysis Services服務器解釋的值爲'野田',但db中的值爲野田。

[注值後面的空格「野田」]

enter image description here

我試圖搜索所有包含此特殊字符在姓氏列中的數據結束行。

爲此,我嘗試了下面的查詢,但它沒有給我不正確的結果。

select * from [#temp1] 
where convert(nvarchar,last_name) like convert(nvarchar,'% ') 

enter image description here

我想包含在姓氏字段值的末尾特殊字符(」「)的行。

我錯過了什麼?

+0

您知道特殊字符的ASCII值?也許這不是空間,而是別的。我會使用'ASCII'&'SUBSTRING'來確認字符是什麼,然後使用'CHAR'來搜索確切的ASCII值。 –

+0

不幸的是我不知道ASCII值。不知道我怎麼能得到它。是的,它似乎不是一個空間。 –

+0

這就是爲什麼你使用'ASCII'和'SUBSTRING'函數來獲取角色。你已經知道它在哪一行了。爲了評論的時間有點長,所以我將在下面發佈這個答案。 –

回答

0

您可以嘗試使用REVERSESUBSTRING

這樣,

select * from [#temp1] 
where SUBSTRING(REVERSE(last_name),1,1)=' ' 
0

它看起來像你有一個尾隨字符實際上不是一個空間,但顯示爲一個在SSMS(或者其他任何你用來查看數據的東西)。你需要找到什麼性格其實是的,所以我會嘗試這樣的事:

SELECT 
    last_name, 
    ASCII(SUBSTRING(last_name, LEN(last_name), 1)) 
FROM 
    #temp1 

如果你知道id的值或者其他方式來看到那麼這行中的WHERE子句添加。

一旦這樣做了,你應該能夠找到與該數據的所有實例:

SELECT 
    * -- Get whatever columns you need 
FROM 
    #temp1 
WHERE 
    last_name LIKE '%' + CHAR(<value found above>)