ここから本文です

SYBASEからPostgreSQLに以降しようとしているのですが、 SCD列はCHAR型で、「DC-1...

hot********さん

2017/2/1115:23:36

SYBASEからPostgreSQLに以降しようとしているのですが、
SCD列はCHAR型で、「DC-1234-568」というデータは含まれています。

重複行の削除と検索条件を付与して

SELECT DISTINCT * FROM TEST WHERE SCD = 'DC-1234-568'

というSQL文を実行すると表示が0件となってしまいます。

DISTINCTを外して見ても0件です。
試しに

SELECT * FROM NEW_ENTITY2 WHERE SCD LIKE 'DC%'

と前方一致にしたら表示されましたがこれでは途中まで同じデータまで表示されてしまいます。
完全一致で表示されない原因が分かればと思います。

よろしくお願い致します。

閲覧数:
53
回答数:
1

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

nora1962jpさん

2017/2/1119:41:07

> SELECT DISTINCT * FROM TEST WHERE SCD = 'DC-1234-568'
> SELECT * FROM NEW_ENTITY2 WHERE SCD LIKE 'DC%'

このSQLを実行したのはSYBASEですかPostgreSQLですか。
SYBASEはASE、SQL Anywhereどちらなのか、と言ってもどちらもよく知っていませんけど。

そもそも
SELECT SCD FROM TEST WHERE SCD = 'DC-1234-568'
ではどういう結果になるのでしょう。

文字列連結演算子「||」が使えるなら(ASEなら「+」が使えるかも)
SELECT ':' || SCD || ':' FROM NEW_ENTITY2 WHERE SCD LIKE 'DC%'
とかするとどういう結果になりますか?

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2017/2/13 23:10:51

テスト用に作ったPostgreSQLが後続に空白が入っていたようです。
おかげで問題を特定して取り組むことができました、ありがとうございます。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる