在SQL Server 2005中搜索特殊字符2005
问题描述:
在具有日语数据的字段之一中,我在SQL Server 2005中有一些特殊字符。 由于哪个多维数据集处理失败并且没有找到属性键错误。在SQL Server 2005中搜索特殊字符2005
Analysis Services服务器解释的值为'野田',但db中的值为野田。
[注值后面的空格“野田”]
我试图搜索所有包含此特殊字符在姓氏列中的数据结束行。
为此,我尝试了下面的查询,但它没有给我不正确的结果。
select * from [#temp1]
where convert(nvarchar,last_name) like convert(nvarchar,'% ')
我想包含在姓氏字段值的末尾特殊字符(”“)的行。
我错过了什么?
答
您可以尝试使用REVERSE
和SUBSTRING
这样,
select * from [#temp1]
where SUBSTRING(REVERSE(last_name),1,1)=' '
答
它看起来像你有一个尾随字符实际上不是一个空间,但显示为一个在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>)
您知道特殊字符的ASCII值?也许这不是空间,而是别的。我会使用'ASCII'&'SUBSTRING'来确认字符是什么,然后使用'CHAR'来搜索确切的ASCII值。 –
不幸的是我不知道ASCII值。不知道我怎么能得到它。是的,它似乎不是一个空间。 –
这就是为什么你使用'ASCII'和'SUBSTRING'函数来获取角色。你已经知道它在哪一行了。为了评论的时间有点长,所以我将在下面发布这个答案。 –