在sql server 2005中搜索特殊字符

时间:2016-05-13 12:56:43

标签: sql sql-server sql-server-2005

我在SQL Server 2005中有一些特殊字符,其中一个字段有日文数据。 由于哪个多维数据集处理失败并且找不到属性键错误。

Analysis Services服务器解释的值是'野田',但db中的值是野田。

[注意价值后的空格'野田']

enter image description here

我试图在last_name列的数据末尾搜索包含此特殊字符的所有行。

为此,我尝试了以下查询,但它没有给我不正确的结果。

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

enter image description here

我希望在last_name字段的值末尾包含特殊字符('')的行。

我错过了什么?

2 个答案:

答案 0 :(得分:0)

您可以尝试使用REVERSESUBSTRING

像这样,

select * from [#temp1]
where SUBSTRING(REVERSE(last_name),1,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>)