2016-05-13 6 views
0

日本語のデータを持つフィールドのSQL Server 2005に特殊文字があります。 キューブ処理が失敗し、属性キーが見つかりませんでした。 Analysis Servicesのサーバーによって解釈SQL Server 2005で特殊文字を検索する

値は '野田' が、DBの値は野田です。

[「野田を」の値の後にスペースを注意]

enter image description here

は、last_name列内のデータの最後にこの特殊文字を含むすべての行を検索しようとしています。このため

、私は、クエリの下にしようとしたが、それは私に間違った結果を与えるdoesntの。

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

enter image description here

私はLAST_NAMEフィールドの値の末尾に特殊文字(」「)を含んでいる行をしたいです。

私には何が欠けていますか?

+0

あなたは特別な文字のASCII値を知っていますか?多分それはスペースではなく、何か他のものです。私は 'ASCII'と' SUBSTRING'を使って文字が何であるかを確認し、その正確なASCII値を検索するのに 'CHAR'を使います。 –

+0

残念ながら私はASCII値を知らない。どのように私がそれを得ることができるか分からない。そうです、それはスペースではないようです。 –

+0

これは文字を取得するために 'ASCII'と' SUBSTRING'関数を使う理由です。あなたはすでにそれがどんな行に入っているかを知っています。コメントを少し長くしているので、私はこれを以下の答えとして掲示します。 –

答えて

0

あなたはこのようにREVERSESUBSTRING

を使用して試すことができ、

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

それはあなたが実際に宇宙ではありません末尾の文字を持っているように見えるが、SSMSの1(として表示されデータを表示するために他のものを使用している場合)。あなたは、その文字が実際にあるものを見つける必要があるので、私はこのような何かをしようとするだろう:

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>) 
関連する問題