0

私はここの新しいユーザーであるため、スクリーンショットを添付できません。ところで、SQL を介してテーブルからデータを表示しようとしています。次のコマンドを使用してテーブルを作成しました: -

CREATE TABLE  N2 
   (    BOOK_ID VARCHAR2(6) NOT NULL ENABLE, 
    BOOK_NAME VARCHAR2(150) NOT NULL ENABLE, 
    AUTHOR_ID CHAR(6), 
    PUBLICATION_ID CHAR(6), 
    MAJOR_SUB_ID CHAR(6), 
    MINOR_SUB_ID CHAR(6)
   )

しかし問題は、クエリに対してレコードが表示されないことです:-

Select * from N2 where book_id='B0001';

book_id=B0001 のレコードが存在することがわかりますが、book_id 列に char 型を使用するか、

Select * from N2 where book_id like 'B0001%';

もう 1 つのことは、この問題は varchar2 データ型の他の列では発生しないということです。

私を助けてください。

4

1 に答える 1

1

クラシック : おそらく、データの末尾に隠し文字 (改行) の末尾のスペースがあります...

で同じ結果を得ることができます:

Select * from N2 where trim(book_id)='B0001';

ただし、この文字は ID フィールドにあるべきではないと思われるため、データをクリーンアップすることをお勧めします

于 2013-07-08T13:12:32.480 に答える