X



トップページDB@2ch掲示板
1002コメント316KB
SQL質疑応答スレ 19問目
レス数が1000を超えています。これ以上書き込みはできません。
0001NAME IS NULL
垢版 |
2019/05/23(木) 20:25:40.60ID:???
このスレは
「こういうことをやりたいんだけどSQLでどう書くの?」
「こういうSQLを書いたんだけどうまく動きません><」
などの質問を受け付けるスレです。

SQLという言語はISOによって標準化されていますが
この標準を100%実装したDBMSは存在せず、
また、DBMSによっては標準でない独自の構文が
追加されていることもあります。

質問するときはDBMS名を必ず付記してください。

【質問テンプレ】
・DBMS名とバージョン
・テーブルデータ
・欲しい結果
・説明

前スレ:
SQL質疑応答スレ 18問目
https://mevius.5ch.net/test/read.cgi/db/1515071542/
0952NAME IS NULL
垢版 |
2021/03/14(日) 17:22:39.59ID:???
>>951
まーた文脈読めないレスしやがって
これだからAccessユーザーはww
0953NAME IS NULL
垢版 |
2021/03/14(日) 17:50:46.58ID:???
これだから他DBMSユーザーを貶すことしかできない奴はw
0954NAME IS NULL
垢版 |
2021/03/14(日) 17:54:36.87ID:???
>>932
RDBMS製品としてのOracleがレガシー化してるという話ではなく
Oracleを使い続けてるような組織や技術者がレガシー化してる(もしくはレガシー化しやすい)という話でしょ

当てはまらない会社がないわけではないけど傾向としては思い当たる節がかなりある
0955NAME IS NULL
垢版 |
2021/03/14(日) 17:59:49.51ID:???
OracleでSQL覚えたため、そのあと外部結合の書き方で苦労した
0956NAME IS NULL
垢版 |
2021/03/14(日) 18:13:58.58ID:???
わかる
(+)の書き方に慣れちゃった 結合条件は全てWHEREにないと落ち着かない
0957NAME IS NULL
垢版 |
2021/03/14(日) 18:59:49.73ID:???
組織や技術者のレガシー化ってまた意味がよくわからん雰囲気ワードだな。
具体的にはどういう状態のことを言っているんだろう。
0958NAME IS NULL
垢版 |
2021/03/14(日) 19:06:53.31ID:GjReX37m
>>956
それOracleだけじゃなくて、他のRDBMSでもその構文は使える。

標準SQLの方がよい構文はそちらがスタンダードになっているだけ。

ここは本当に中高年しかいないなw
0959NAME IS NULL
垢版 |
2021/03/14(日) 19:19:55.84ID:???
>>955
MySQLで覚えてたらもっと酷いことになってた
0960NAME IS NULL
垢版 |
2021/03/14(日) 19:29:53.11ID:???
(+)構文がオラクル以外でも使えるって初耳だが
ググってもそれらしい情報出てこんし
0961NAME IS NULL
垢版 |
2021/03/14(日) 20:10:07.13ID:???
少なくともSQL-Serverではdocsには載ってないから使えないと思う
秘密のコマンドでOracle互換モードとかあるのかも知れんがw
0962NAME IS NULL
垢版 |
2021/03/14(日) 20:22:16.65ID:r8cV92Rv
>>960
PostgreSQL、Db2など。

そもそもどの製品も独特な外部結合構文を持っていて、Oracle Databaseだけが独特なのではない。
0963NAME IS NULL
垢版 |
2021/03/14(日) 20:47:53.70ID:???
そういう話じゃないと思うが・・・
0964NAME IS NULL
垢版 |
2021/03/14(日) 21:12:24.04ID:???
>>957
>Web周りの技術力ってISSとWebSphereとOASのどれが優れているかとかいう議論ならわかるが、

↑これがレガシー化
自覚がない本人かもしれんが
0965NAME IS NULL
垢版 |
2021/03/14(日) 21:31:09.20ID:???
相当なルサンチマンを抱えてるんだろうなw
0966NAME IS NULL
垢版 |
2021/03/14(日) 22:53:26.21ID:???
レガシー化というのは時代の変化や環境の変化に対応できなくなってること

旧式化して時代遅れになってると言ってもいいが
簡単にはリプレースできないしがらみや機能や考え方が硬直的というニュアンスも含む
逆に硬直性の無いものはレガシーとは言わない

人に対して使う場合は時代遅れと老害を足して2で割ったものと思っておけばいい
0967NAME IS NULL
垢版 |
2021/03/14(日) 23:12:19.06ID:???
普段言われている奴が使いたがる用語
0968NAME IS NULL
垢版 |
2021/03/15(月) 00:56:53.79ID:???
943です、皆さん回答ありがとうございます
やりたかったのは、食品の販売だとすると、
イチゴや大根の商品コードを対して、果物や野菜、といった分類をCASE式でつけたいのですが、20行程度のSQLの冒頭に数十行のselect句があると頭でっかちに感じた次第です。
0969NAME IS NULL
垢版 |
2021/03/15(月) 01:03:00.08ID:???
>>968
例えばイチゴの場合に果物か野菜かの判定をSQL文の中で行わせたいって事か?
0970NAME IS NULL
垢版 |
2021/03/15(月) 01:19:12.21ID:???
>>968
それは商品コードを管理するマスタに分類を持たすとか、判断用のビュー作とかするのが普通じゃないかと思うんだが
まあ、設計はスレ違いではあるが、設計見直すべきだと
0972NAME IS NULL
垢版 |
2021/03/15(月) 08:22:46.90ID:???
>>970
>>管理用のビュー
943です。ビューならいじりやすいですね。20年前にソフト屋さんに作って貰った販売管理で、データ取得用のビューがあります。ただ上のコード分類とて30か50個の商品コードのことです。規模が小さいのにオラクルなので他のソフト屋さんに驚かれます。
0973NAME IS NULL
垢版 |
2021/03/15(月) 10:11:02.70ID:8bMPGxFo
>>972
20年前ならOracleかSQL Serverの二択ですからね。
0974NAME IS NULL
垢版 |
2021/03/15(月) 11:41:58.64ID:???
普通にPostgreSQLやMySQLも使われてただろ
0975NAME IS NULL
垢版 |
2021/03/15(月) 11:42:41.74ID:8bMPGxFo
普通w
0976NAME IS NULL
垢版 |
2021/03/15(月) 12:09:48.61ID:???
SQL SERVERですが decimalの最大桁数(Permission)とバイト数について
1 - 9桁 5バイト
10 - 19桁 9バイト
20 - 28桁 13バイト
29 - 38桁 17バイト
となってると思いますがデータの桁数が多少変動し不明確な場合、
極論各バイト数の最大(9桁、19桁、28桁、38桁)をとっておけば、
実際の桁数少なくてもバイト数も変わらないし無駄はないかなと思っているのですが、この考え合っていますでしょうか?
皆さんどうされていますか?
0977NAME IS NULL
垢版 |
2021/03/15(月) 15:35:38.96ID:???
>>968
それはCASE式じゃなく分類コードを管理するテーブルを作るべきケース
行と列の縦横変換はPIVOTとかの関数を使う

分類が変化しそうにもないなら既存の商品テーブルに分類コードのカラムを追加するのが望ましいが
なんらかの事情でそれが難しいようなら商品コードと分類コードの紐付きを管理するだけの別テーブルを作るのでも構わない
0978NAME IS NULL
垢版 |
2021/03/15(月) 15:49:14.81ID:???
>>976
バイト数以外で最大有効桁数を制限しておきたい理由がなければその方針でいいんじゃない
とりあえず9桁にしておくってみたいなケースはよくあるよ

PermissionじゃなくPrecisionね
0979NAME IS NULL
垢版 |
2021/03/15(月) 20:32:28.15ID:8bMPGxFo
>>976
桁数は大きくしておいて、どうしても小さくしたいのなら、あとから変えればいいだけ。
0980NAME IS NULL
垢版 |
2021/03/15(月) 20:35:28.41ID:8bMPGxFo
日本円の金額項目なら、9桁は小さいから、よく考えた方がいい。
0981NAME IS NULL
垢版 |
2021/03/16(火) 23:50:58.51ID:???
MAXが1億って、比較的小さい規模の企業ではないかな
個人商店でも溢れそうな気がする
0982NAME IS NULL
垢版 |
2021/03/17(水) 00:24:46.52ID:???
仮に金額入れるとしても9桁で十分なユースケースはいくらでもあるだろう
smallmoneyとか何のためにあると思ってるんだ?

それに9桁ならMAXは約10億だぞ
大丈夫か?
0983NAME IS NULL
垢版 |
2021/03/17(水) 11:07:02.06ID:5VYW3mpQ
間違ってますよ
0984NAME IS NULL
垢版 |
2021/03/17(水) 11:08:02.26ID:5VYW3mpQ
約10億という言い方が馬鹿っぽい
0985NAME IS NULL
垢版 |
2021/03/17(水) 11:21:48.74ID:???
>>984
また恥ずかしいレスしちゃったねw
0986NAME IS NULL
垢版 |
2021/03/17(水) 12:02:24.73ID:5VYW3mpQ
おちんちんが小さくて恥ずかしいです。
0987NAME IS NULL
垢版 |
2021/03/17(水) 18:23:25.88ID:???
馬鹿っぽいと言っておけば
自分の馬鹿さを隠せるとでも思ったのか
0988NAME IS NULL
垢版 |
2021/03/17(水) 18:56:12.21ID:5VYW3mpQ
仕事の会話だったら、普通は9億いくつという言い方をする。約10億だと10億以上もあるということになり、認識がずれてしまう。
0989NAME IS NULL
垢版 |
2021/03/17(水) 19:44:25.72ID:???
スレが活発になって嬉しいw
0990NAME IS NULL
垢版 |
2021/03/17(水) 21:23:38.42ID:???
桁数の話してるんだから普通の人は約10億で最大九億九千九百九十九万九千九百九十九ってわかると思うんだが…
0991NAME IS NULL
垢版 |
2021/03/17(水) 21:49:39.92ID:5VYW3mpQ
0992NAME IS NULL
垢版 |
2021/03/17(水) 21:50:17.62ID:5VYW3mpQ
中学校からやり直しですね。
0993NAME IS NULL
垢版 |
2021/03/17(水) 21:51:05.93ID:5VYW3mpQ
正確には小学校からだった。
0994NAME IS NULL
垢版 |
2021/03/17(水) 21:58:14.11ID:???
毎度赤っ恥かく原因はクソみたいなマウンティング精神にあることを気付こうな
いい年してそれじゃヤバいで
0995NAME IS NULL
垢版 |
2021/03/17(水) 22:39:56.28ID:5VYW3mpQ
やばいですね。
0996NAME IS NULL
垢版 |
2021/03/22(月) 23:31:39.87ID:???
with句とfromのサブクエリ、皆さんどのように使い分けていますか?
0997NAME IS NULL
垢版 |
2021/03/23(火) 14:44:47.25ID:/NGqi0As
>>996
基本的には前者にしておく。
0998NAME IS NULL
垢版 |
2021/03/23(火) 20:51:04.53ID:???
ほかが戸惑わないようにサブクエリ
1000NAME IS NULL
垢版 |
2021/03/23(火) 21:44:51.12ID:/NGqi0As
WITH句は徐々に浸透しているから、WITH句を使わない決まりがないなら、WITH句はどんどん使うべき。
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 670日 1時間 19分 11秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況