2016-05-13 62 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>)