2016-10-19 5 views
1

私にはvarcharが入っている列があります。この列のデータの中には、ハッシュタグとして読み取られるものもあります(どちらの側にも空白はありません)。ハッシュタグが動作しない場所をすべて選択してください

条件なしで*を選択すると、ハッシュタグデータ(スクリーンショット)が表示されます。

enter image description here

私はハッシュタグで行をカウントする選択を行うと、私はここで

を見つけることができないのクエリは、私の2つのクエリ

-- returns 0 
select count(LastVisitNumber) 
from qcpr_ARF_OC.Visit 
where LastVisitNumber = '#'; 

-- returns several rows and some are just #. 
select * from qcpr_ARF_OC.Visit; 
あるのはなぜ0のリターンを得ます
+0

後ろに空白がありません。 – Bugs

+0

いいえ、セルからコピーしてSQLコード – Frantumn

+0

に貼り付けました** where句で** 1167900114 **を使用した場合、1行が返されると思いますか?そして、**#**を使って試してみると失敗します。 – Bugs

答えて

0

他の文字が見えない可能性があります。これはLastVisitNumberは、その名前にもかかわらず、実際には文字列であることを前提としてい

select count(LastVisitNumber) 
from qcpr_ARF_OC.Visit 
where LastVisitNumber like '%#%'; 

:私は開始します。

+0

私はそれを試みましたが、まだ0の結果が返されました。はい、テーブルのプロパティをチェックしました。これはintカラムではなくvarcharです。 – Frantumn

1

私はそれが失敗した場合、ハッシュは...Cachéドキュメントはそれについて何も言っていないようにも関わらず、

where LastVisitNumber like '%\#%'; 

をエスケープを必要とする場合、これらの4つの代替クエリが役立つことだろう.... ORDER BY句を交換するだけです。

SELECT LastVisitNumber, 
      CHAR_LENGTH(LastVisitNumber) 
     FROM qcpr_ARF_OC.Visit 
    WHERE LastVisitNumber NOT NULL 
    ORDER BY LastVisitNumber 
# ORDER BY CHAR_LENGTH(LastVisitNumber) 
# ORDER BY LastVisitNumber DESC 
# ORDER BY CHAR_LENGTH(LastVisitNumber) DESC 

また、それが簡単に驚くべき詳細を明らかにすることができるトレースを生成することができる(代わりに、JDBCの)ODBCを介して、照会してみてください。

+0

素晴らしいアイデアです。私は脱出を試みたが、うまくいかなかった。キャッシュデータツールでクエリを試したところ、同じ0の結果が得られました。私の心は吹かれた。私は、同様の注文方法を使用して必要な結果を取り上げましたが、私はまだこれの最下部に行きたいと思っています。 – Frantumn

関連する問題