SQL質疑応答スレ 19問目
レス数が1000を超えています。これ以上書き込みはできません。
このスレは
「こういうことをやりたいんだけどSQLでどう書くの?」
「こういうSQLを書いたんだけどうまく動きません><」
などの質問を受け付けるスレです。
SQLという言語はISOによって標準化されていますが
この標準を100%実装したDBMSは存在せず、
また、DBMSによっては標準でない独自の構文が
追加されていることもあります。
質問するときはDBMS名を必ず付記してください。
【質問テンプレ】
・DBMS名とバージョン
・テーブルデータ
・欲しい結果
・説明
前スレ:
SQL質疑応答スレ 18問目
https://mevius.5ch.net/test/read.cgi/db/1515071542/ >>951
まーた文脈読めないレスしやがって
これだからAccessユーザーはww これだから他DBMSユーザーを貶すことしかできない奴はw >>932
RDBMS製品としてのOracleがレガシー化してるという話ではなく
Oracleを使い続けてるような組織や技術者がレガシー化してる(もしくはレガシー化しやすい)という話でしょ
当てはまらない会社がないわけではないけど傾向としては思い当たる節がかなりある OracleでSQL覚えたため、そのあと外部結合の書き方で苦労した わかる
(+)の書き方に慣れちゃった 結合条件は全てWHEREにないと落ち着かない 組織や技術者のレガシー化ってまた意味がよくわからん雰囲気ワードだな。
具体的にはどういう状態のことを言っているんだろう。 >>956
それOracleだけじゃなくて、他のRDBMSでもその構文は使える。
標準SQLの方がよい構文はそちらがスタンダードになっているだけ。
ここは本当に中高年しかいないなw >>955
MySQLで覚えてたらもっと酷いことになってた (+)構文がオラクル以外でも使えるって初耳だが
ググってもそれらしい情報出てこんし 少なくともSQL-Serverではdocsには載ってないから使えないと思う
秘密のコマンドでOracle互換モードとかあるのかも知れんがw >>960
PostgreSQL、Db2など。
そもそもどの製品も独特な外部結合構文を持っていて、Oracle Databaseだけが独特なのではない。 >>957
>Web周りの技術力ってISSとWebSphereとOASのどれが優れているかとかいう議論ならわかるが、
↑これがレガシー化
自覚がない本人かもしれんが レガシー化というのは時代の変化や環境の変化に対応できなくなってること
旧式化して時代遅れになってると言ってもいいが
簡単にはリプレースできないしがらみや機能や考え方が硬直的というニュアンスも含む
逆に硬直性の無いものはレガシーとは言わない
人に対して使う場合は時代遅れと老害を足して2で割ったものと思っておけばいい 943です、皆さん回答ありがとうございます
やりたかったのは、食品の販売だとすると、
イチゴや大根の商品コードを対して、果物や野菜、といった分類をCASE式でつけたいのですが、20行程度のSQLの冒頭に数十行のselect句があると頭でっかちに感じた次第です。 >>968
例えばイチゴの場合に果物か野菜かの判定をSQL文の中で行わせたいって事か? >>968
それは商品コードを管理するマスタに分類を持たすとか、判断用のビュー作とかするのが普通じゃないかと思うんだが
まあ、設計はスレ違いではあるが、設計見直すべきだと >>970
>>管理用のビュー
943です。ビューならいじりやすいですね。20年前にソフト屋さんに作って貰った販売管理で、データ取得用のビューがあります。ただ上のコード分類とて30か50個の商品コードのことです。規模が小さいのにオラクルなので他のソフト屋さんに驚かれます。 >>972
20年前ならOracleかSQL Serverの二択ですからね。 普通にPostgreSQLやMySQLも使われてただろ SQL SERVERですが decimalの最大桁数(Permission)とバイト数について
1 - 9桁 5バイト
10 - 19桁 9バイト
20 - 28桁 13バイト
29 - 38桁 17バイト
となってると思いますがデータの桁数が多少変動し不明確な場合、
極論各バイト数の最大(9桁、19桁、28桁、38桁)をとっておけば、
実際の桁数少なくてもバイト数も変わらないし無駄はないかなと思っているのですが、この考え合っていますでしょうか?
皆さんどうされていますか? >>968
それはCASE式じゃなく分類コードを管理するテーブルを作るべきケース
行と列の縦横変換はPIVOTとかの関数を使う
分類が変化しそうにもないなら既存の商品テーブルに分類コードのカラムを追加するのが望ましいが
なんらかの事情でそれが難しいようなら商品コードと分類コードの紐付きを管理するだけの別テーブルを作るのでも構わない >>976
バイト数以外で最大有効桁数を制限しておきたい理由がなければその方針でいいんじゃない
とりあえず9桁にしておくってみたいなケースはよくあるよ
PermissionじゃなくPrecisionね >>976
桁数は大きくしておいて、どうしても小さくしたいのなら、あとから変えればいいだけ。 日本円の金額項目なら、9桁は小さいから、よく考えた方がいい。 MAXが1億って、比較的小さい規模の企業ではないかな
個人商店でも溢れそうな気がする 仮に金額入れるとしても9桁で十分なユースケースはいくらでもあるだろう
smallmoneyとか何のためにあると思ってるんだ?
それに9桁ならMAXは約10億だぞ
大丈夫か? 馬鹿っぽいと言っておけば
自分の馬鹿さを隠せるとでも思ったのか 仕事の会話だったら、普通は9億いくつという言い方をする。約10億だと10億以上もあるということになり、認識がずれてしまう。 桁数の話してるんだから普通の人は約10億で最大九億九千九百九十九万九千九百九十九ってわかると思うんだが… 毎度赤っ恥かく原因はクソみたいなマウンティング精神にあることを気付こうな
いい年してそれじゃヤバいで with句とfromのサブクエリ、皆さんどのように使い分けていますか? WITH句は徐々に浸透しているから、WITH句を使わない決まりがないなら、WITH句はどんどん使うべき。 このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 670日 1時間 19分 11秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。