質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

4回答

6011閲覧

SQLの大小比較について質問です

Oskr

総合スコア7

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2018/01/31 08:13

編集2018/01/31 11:14

OracleDBでSQLを実行しているのですが、
00505と005040000を大小比較した時00505の方が大きいという結果になりました
後者の方がおおきいような気がするのですがどういうことでしょう?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2018/01/31 09:29

回答が付いた質問の編集は慎重に行ってください。タイプミス程度なら修正する事もありますが、本文を削除するのはやめましょう。
guest

回答4

0

SQL関係の質問の仕方として、CREATE TABLE, 現状のテーブルの内容を示すための INSERT, 実行したSQLを提示されては?

・文字列の比較

SQL

1SELECT 2 CASE 3 WHEN A.STRING1 > A.STRING2 THEN 4 A.STRING1 5 ELSE 6 A.STRING2 7 END AS ANS 8FROM( 9 SELECT '00505' AS STRING1 10 , '005040000' AS STRING2 11 FROM DUAL 12 ) A ; 13 14ANS 15------------------ 1600505 17 181行が選択されました。

・数値の比較

SQL

1SELECT 2 CASE 3 WHEN A.NUM1 > A.NUM2 THEN 4 A.NUM1 5 ELSE 6 A.NUM2 7 END AS ANS 8FROM( 9 SELECT 00505 AS NUM1 10 , 005040000 AS NUM2 11 FROM DUAL 12 ) A ; 13 14 ANS 15------------- 16 5040000 17 181行が選択されました。

Oracleデータベース入門
Oracle入門 などを熟読されては?

投稿2018/01/31 08:40

編集2018/01/31 09:31
Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

おそらく文字列比較になっているからだと思います。

505 と 5040000 → 5040000 の方が大きい

'00505' と '005040000' → '00505' の方が大きい

投稿2018/01/31 08:22

sk_3122

総合スコア1126

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

文字列での比較になってませんか?

▼数値の場合
505 < 5040000

▼文字列の場合
"00505" > "005040000"

 ※"AACAC"と"AACABAAAA"だと前者のほうが大きいですよね。

投稿2018/01/31 08:21

ucchan1985

総合スコア16

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

文字列としての比較ですから正しい結果です。

数値で比較するなら数値型に変換してから比較する必要があります。

SQL

1select 2 (to_number('00505') < to_number('005040000')) 3, ('00505' < '005040000') 4from dual

投稿2018/01/31 08:19

sazi

総合スコア25195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問