X



トップページDB@2ch掲示板
1002コメント294KB
SQL初心者質問スレ [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001NAME IS NULL
垢版 |
2016/05/12(木) 05:29:07.61ID:HmbS4CfD
SQL初心者用の質問スレッドです。
0461NAME IS NULL
垢版 |
2017/03/14(火) 12:41:38.04ID:KmvSvp8f
>>460
秀丸はどんどん使われなくなってるぞ。
0462NAME IS NULL
垢版 |
2017/03/14(火) 15:54:17.47ID:???
そろそろ、SQLに関する話題に戻そうよ
0463NAME IS NULL
垢版 |
2017/03/14(火) 19:32:27.53ID:???
正規表現のテストは自信が持てないのに、SQLのテストは完璧に出来るという自信は何処から湧いて出るのか。

怖や怖や。
0464NAME IS NULL
垢版 |
2017/03/14(火) 19:36:53.01ID:VMT6GYOD
>>463
自身が持てないテストなんてテストじゃねえよw
何言っちゃってんの正規厨クンw
0465NAME IS NULL
垢版 |
2017/03/14(火) 19:44:39.02ID:LfWSYHE8
>>463
どんな正規表現を言ってるんだよ?
よほど簡単なものしか想定してないのか。

正規表現はプロ中のプロでも間違うことがあるんだぞ?

だから複雑なものはあまり使われない。ぱっと見、これで合っているかどうかわからないのが原因。
0466NAME IS NULL
垢版 |
2017/03/14(火) 19:51:46.52ID:LfWSYHE8
正規表現は言語、環境によっても方言が強くて面倒
0467NAME IS NULL
垢版 |
2017/03/14(火) 20:07:23.62ID:???
んなことないだろ
だいたいposixかperlか2択
0468NAME IS NULL
垢版 |
2017/03/14(火) 20:28:52.70ID:???
>>465
うえでワーワー言ってる人って、正規表現を書き間違えたことでのバグじゃなくて、仕様通りの動作をしないというバグのことを指しているとおもうよ
0469NAME IS NULL
垢版 |
2017/03/14(火) 20:37:06.86ID:???
ここはデータベース板だって事分かってる?
0470NAME IS NULL
垢版 |
2017/03/14(火) 20:43:01.10ID:???
そりゃ分かってるでしょう
0471NAME IS NULL
垢版 |
2017/03/14(火) 20:47:24.70ID:VMT6GYOD
時と場所をわきまえずに正規自慢したがるのが正規厨なんだYO
0472NAME IS NULL
垢版 |
2017/03/14(火) 21:15:09.82ID:LfWSYHE8
>>471
Oracleも正規表現の関数を大量に追加したものの使ってるプログラムを見たことない。

正規表現の乱用はよくないという結論は十数年前に出てるよな。

Eメールアドレスの形式チェックですら正規表現だけでやろうとすると難しくて昔はどのWebサイトもミスしまくってたな。
0474NAME IS NULL
垢版 |
2017/03/15(水) 00:01:42.17ID:???
>>472
なんでも乱用は良くないものですよ

Eメールアドレスの形式チェック「ですら」
0475NAME IS NULL
垢版 |
2017/03/15(水) 23:12:31.33ID:yFO1cwOX
>>473
正規表現だけでEメールアドレスの文字列があっているかどうかを一発で判定する正規表現を考えればいい。なかなか難しいぞ。
0476NAME IS NULL
垢版 |
2017/03/15(水) 23:13:19.18ID:yFO1cwOX
>>474
日本語が苦手なんですね。
0477NAME IS NULL
垢版 |
2017/03/15(水) 23:28:15.79ID:???
(はは〜ん…コイツさては正規厨だな…)
0478NAME IS NULL
垢版 |
2017/03/15(水) 23:50:53.41ID:yFO1cwOX
語彙って親や育った環境で大差がつくんだよな。知らない、あまりその人が聞かない言葉や言い回し見たり、聞いたりすると言葉がおかしいなどと批判してくる。本人が無知なだけなのに。
0479NAME IS NULL
垢版 |
2017/03/16(木) 02:43:53.69ID:???
3日連投しましょう
0480NAME IS NULL
垢版 |
2017/03/26(日) 06:46:08.94ID:???
SQLの書き方で質問ですが、
AND句は行の先頭に書くか、行の末尾に書くか、どちらが一般的でしょうか?

(例1)
WHERE
 A = 1 AND
 B = 1

(例2)
WHERE
 A = 1
 AND B = 1

SQLの書き方ガイドラインのようなものがあれば教えてください。
よろしくお願いします。
0482NAME IS NULL
垢版 |
2017/03/26(日) 10:40:33.20ID:uME5dCZb
>>480
そういう決まりはない。プログラミング言語と同じで改行せずにANDがあれば条件の続きがあるとわかりやすいが、コメントアウトしにくい。

selectの選択列のカンマ位置と同じようなもの。
0483NAME IS NULL
垢版 |
2017/03/26(日) 12:01:47.23ID:???
うちは
where 1 = 1
and a = 1
and b = 1
0484NAME IS NULL
垢版 |
2017/03/26(日) 13:03:58.55ID:???
UNIONやサブクエリ入るとまたちょっと変わるけど基本的に
select tableの選択セクション whereの条件セクション orderとかのその他セクション
この3つで分ける程度だな
0486NAME IS NULL
垢版 |
2017/03/29(水) 18:16:55.34ID:XE4RKzOb
技術士の全部門をコンプリート vs 東大理三首席現役合格 vs 旧司法試験首席一発合格

どれが一番凄い?
0487NAME IS NULL
垢版 |
2017/03/30(木) 05:17:15.45ID:???
>>481, 482, 483, 484
返信が遅くなってしまいすみません。
レスありがとうございました。

>selectの選択列のカンマ位置と同じようなもの。

なるほどそうですか。
例1も例2も好きなほうでよい、ということですね。

(例1)
  SELECT
   A, B, C,
   D

(例2)
  SELECT
   A, B, C
   , D

勉強になりました。
0488NAME IS NULL
垢版 |
2017/03/30(木) 08:09:41.36ID:???
条件の内容を最初に見たいからandは後ろにつけてる。
前にあると地味にイラっとする。
where
a=1 and
b=2
0489NAME IS NULL
垢版 |
2017/03/31(金) 15:35:06.33ID:???
>>486
東大理三首席現役合格
正真正銘期間限定延期不可一発勝負なのはこれだけ
0491NAME IS NULL
垢版 |
2017/04/01(土) 21:59:51.47ID:O38ZNBFt
カスタマーエンジニアってどうですか?収入面とか労働面で。
楽ですか?それとも超キツイですか?
0493NAME IS NULL
垢版 |
2017/04/09(日) 19:51:01.20ID:???
このどうですか厨は、いろんな板で荒らしているだろ
相手せず、スルーしようよ
0494NAME IS NULL
垢版 |
2017/04/13(木) 18:25:57.43ID:n8gSS6s1
C#からsqliteを使っているんですが、データベースの設計方法がわかりません、第2正規化以降って必要ですか?
必要なデータを洗い出してそこから正規化していけばいいんでしょうか?もしある程度レコードが増えた状態で新たに項目追加したいとなったらどうすればいいんでしょうか?
0495NAME IS NULL
垢版 |
2017/04/13(木) 18:43:18.24ID:???
そりゃ設計のスレだな
追加したカラムに既存のレコードも全部埋まるなら追加でいいし
埋まらないなら別に作るべきでしょ
0496NAME IS NULL
垢版 |
2017/04/13(木) 18:44:45.99ID:???
>>494
本買って読んだ方が手っ取り早い
0497NAME IS NULL
垢版 |
2017/04/13(木) 21:45:28.08ID:???
>>495
すいません
では設計スレのほうにいきます
0498NAME IS NULL
垢版 |
2017/04/20(木) 02:03:12.33ID:???
mybatis使っててDBに定義されたBLOB型のデータをバイト配列として取得する方法ってありますか?
0499NAME IS NULL
垢版 |
2017/04/20(木) 03:51:44.77ID:3sXeWAt/
>>498
プログラム板で聞いた方がいい。
0500NAME IS NULL
垢版 |
2017/04/20(木) 03:56:00.44ID:3sXeWAt/
>>498
調べたらそれ普通じゃねえか。すこしは調べろよ。
0501ich1
垢版 |
2017/04/21(金) 16:27:47.00ID:R/eXxgbc
https://goo.gl/q9Ml0S
これは嘘でしょ?本当だったら落ち込むわ。。
0502NAME IS NULL
垢版 |
2017/04/21(金) 23:52:26.43ID:???
アホかと思われるかも知れませんが、
こうするとエロラーになります。
何か良い方法ないですか?

Select *
From テーブル2 ←──┐
Union All          │
Select *          │
From (サブクエリ) As テーブル2
0503NAME IS NULL
垢版 |
2017/04/21(金) 23:54:28.65ID:fJADFuER
>>502
ネタですか?

名前がぶつかっているのだから、あたりまえでしょうがw
0504NAME IS NULL
垢版 |
2017/04/22(土) 00:02:49.50ID:???
>>503
すいません、駄目なのはわかってて、
こういうのがやりたい時はどう書くのかなと。
0505NAME IS NULL
垢版 |
2017/04/22(土) 00:10:42.55ID:bI/4AwC2
>>504
なぜそうしなければいけないのか?
0506NAME IS NULL
垢版 |
2017/04/22(土) 00:13:53.98ID:???
どういうことをしたいのか質問内容を具体的に書かないと伝わらないぞ
0507NAME IS NULL
垢版 |
2017/04/22(土) 12:23:35.41ID:???
すごく具体的な質問だと思うけどどこが分からないのか?
クエリの結果を二重にしたいだけだろ
0509NAME IS NULL
垢版 |
2017/04/22(土) 12:33:49.71ID:???
サブクエリーを使いたいと言うことかもしれないし、
単一テーブルから二通りの選択をして結果を合算したいのかもしれないし
0510NAME IS NULL
垢版 |
2017/04/22(土) 12:55:02.60ID:???
なぜ聞かれてもいない事を深読みして答えようとするのか?
どうにかして自分が知ってる事に結びつけようとしてるだけだろお前ら
0511NAME IS NULL
垢版 |
2017/04/22(土) 13:04:00.14ID:???
それも、妄想だろうが
0513NAME IS NULL
垢版 |
2017/04/22(土) 15:11:11.87ID:???
>>502
unionはテーブル名見てるんじゃなくselectの中身見てるだけ
だから別名付けてどうぞ
0514NAME IS NULL
垢版 |
2017/04/22(土) 15:33:24.15ID:bI/4AwC2
>>513
unionを同じテーブルとでしか使えないと思い込んでると仮定したわけか?
0516NAME IS NULL
垢版 |
2017/04/23(日) 03:28:24.12ID:???
>>505
>>506
こういう嫌がらせみたいな表があるんですよ。

商品名  単価1 単価2 単価3
もょもと 100  200  300
すけさん 120
アイリン 500  990

これをUnionで縦に繋げれば綺麗な表になりますが、
普通にやると検索が3倍になるので、2回目以降は前回の抽出結果を参照したいんです。

Select 商品 単価1 From 元テーブル
Select 商品 単価2 From 1回目の抽出結果
Select 商品 単価3 From 2回目の抽出結果

>>513
別名でどう紐づけるんですか?
0517NAME IS NULL
垢版 |
2017/04/23(日) 03:46:27.99ID:???
あれ?
もしかして、Union Allじゃなくて、
単にUnionしたものに対して検索した方が速かったりします?
0518NAME IS NULL
垢版 |
2017/04/23(日) 05:19:54.61ID:7gvObldM
やりたいことがわかりそうでわからない。
0519NAME IS NULL
垢版 |
2017/04/23(日) 05:23:12.48ID:7gvObldM
>>517
結局、何がしたいわけ?
0520NAME IS NULL
垢版 |
2017/04/23(日) 09:38:17.86ID:???
>>516
綺麗な表ってなに?
またなんでそういう要求が
でる背景はなに?
0521NAME IS NULL
垢版 |
2017/04/23(日) 09:50:21.14ID:???
速度が目的なら普通に検索して単価1-3の分離はクライアント側でやるのが現実的だろうね。
あるいは単価1-3をUNION ALLしたサブクエリから抽出する。賢いDBMSなら最適化してくれるかもしれない。
0522NAME IS NULL
垢版 |
2017/04/23(日) 09:56:38.73ID:???
>>519
検索と表の整形です。

>>520
上の例では省略しましたが、
実際は、かなり横に長いんです。

商品名 単価1 単価2 単価3 ・・・ 単価50

おもいっきり横にスクロールしないと全体を見渡せない、
嫌がらせみたない表でしょう?
0523NAME IS NULL
垢版 |
2017/04/23(日) 10:52:31.24ID:???
>>522
あなたのいう綺麗な表とは?
縦にしたいの?


『おもいっきり縦にスクロールしないと全体を見渡せない、
嫌がらせみたない表。』

を作りたいの?
何が便利になるの?
0524NAME IS NULL
垢版 |
2017/04/23(日) 11:01:55.37ID:???
union allで列分繋げればできるよ
0525NAME IS NULL
垢版 |
2017/04/23(日) 11:12:44.52ID:???
質問返ししてる奴いいかげんウザい
0528NAME IS NULL
垢版 |
2017/04/23(日) 11:50:19.03ID:???
商品名を抽出したいのか
商品名に対するいずれかの単価を抽出したいのか
商品名に対する全ての単価を抽出したいのか

それにしても、単価1から単価50まで並べるというのは苦痛だ
そういうテーブル定義作った奴を縛り首にした方が後々良い結果がでる
0529NAME IS NULL
垢版 |
2017/04/23(日) 13:24:51.53ID:???
>>523
データベースって普通縦なんじゃ・・・。
0531NAME IS NULL
垢版 |
2017/04/23(日) 14:42:39.73ID:???
>>523
縦にしたいです。
うちの会社のマウスホイールは、
全部縦に回るので、縦の方が便利なんです。

この表作った人のは、横に回るのかも知れませんが。

>>528
>商品名に対する全ての単価を抽出したいのか

それです。
0532NAME IS NULL
垢版 |
2017/04/23(日) 14:47:27.11ID:???
共通表式 でぐぐれば終わりな気がする
0534NAME IS NULL
垢版 |
2017/04/23(日) 17:40:50.51ID:???
>単価50

この先、まだまだ増えたりしてな w
0535NAME IS NULL
垢版 |
2017/04/23(日) 17:47:02.05ID:???
エクセルのつもりで追加するからたまらんな
0536NAME IS NULL
垢版 |
2017/04/23(日) 22:26:54.47ID:???
一つの商品に50種類もの単価が付けられると言うのは、そういう理由があるわけでしょ?
例えば、一つの商品に50個のパーツが必要でそれぞれに単価があるとか
あるいは50の地域での販売単価とか
そういう小項目も合わせて表示しないと、
意味不明の50行の単価出力にならないかな?
0537NAME IS NULL
垢版 |
2017/04/24(月) 01:18:15.41ID:???
おれなら実テーブルを変更して、元テーブルと同じ形のビューつくるけどな
0538NAME IS NULL
垢版 |
2017/04/24(月) 10:46:17.61ID:???
>>503
> 名前がぶつかっているのだから、あたりまえでしょうがw

>>513
> だから別名付けてどうぞ

なんか、同名だと駄目で当然的な流れだが、PostgreSQLではエラーにはならない。
エラーになるのが普通なのか?
0540NAME IS NULL
垢版 |
2017/04/24(月) 11:50:05.50ID:???
>>539
> 普通とは?
その疑問の意味がわからない。
0541NAME IS NULL
垢版 |
2017/04/24(月) 12:00:49.79ID:???
>>540
その文脈で普通を
具体的に表現して。
0542NAME IS NULL
垢版 |
2017/04/24(月) 12:40:31.78ID:Ng2xnlDE
インラインビューの別名に実テーブル名を使う心理がわからない。混乱するだけだと思うが。
0543NAME IS NULL
垢版 |
2017/04/24(月) 12:40:38.23ID:???
もはや後に退けなくなった意地の質問返し
不毛である
0544NAME IS NULL
垢版 |
2017/04/24(月) 12:48:45.79ID:???
>>541
え?いやだからPostgreSQL以外のRDBMSじゃエラーになるのが普通なのかって意味だけど?
0546NAME IS NULL
垢版 |
2017/04/24(月) 13:01:37.97ID:???
>>545
そうなんだ。
いや、>>503に誰もコメントしないから、エラーになるのが普通なのかと、ちょっと心配したし。
0547NAME IS NULL
垢版 |
2017/04/24(月) 13:04:55.00ID:???
>>542
ひょっとして、PostgreSQL以外では以下はエラーになるのが普通なの?
select * from (select a, b from hoge) as hoge
まぁ、俺も実在のテーブル名を別名につけようとは思わないんだが。
0548NAME IS NULL
垢版 |
2017/04/24(月) 13:07:17.98ID:???
>>547
心配するな、俺の知ってる範囲ではそれはエラーにならない
0549NAME IS NULL
垢版 |
2017/04/24(月) 13:24:49.68ID:???
別名に関して誤解してる奴が多そうだな
0550NAME IS NULL
垢版 |
2017/04/24(月) 14:45:32.03ID:???
>これをUnionで縦に繋げれば綺麗な表になりますが、
>普通にやると検索が3倍になるので、2回目以降は前回の抽出結果を参照したいんです。

select一回で全項目を取得して、後はアプリにやらせるとか
0551NAME IS NULL
垢版 |
2017/04/24(月) 14:54:59.09ID:???
なんかよくわからんが、case whenでいけるかもよ?
データ例と期待する取得結果を書けば、ちゃんとした答えが返るかも
いまのとこ、何をやりたいのかいまいちわからん
0553NAME IS NULL
垢版 |
2017/04/24(月) 15:35:32.59ID:???
実体が横持ちになっているのが気に入らないが、とりあえず縦持ちのように参照するためにUNION ALLを行った。
しかし縦を横にするクエリはまだ知らない。

というところなんじゃないかな。

そのクエリがわかれば、実体を縦持ちにするのもやぶさかではないみたいな。そんな感じがする。
0554NAME IS NULL
垢版 |
2017/04/24(月) 15:36:53.40ID:???
流れがおかしくなったのは >>503 が照れ隠しのために話を流したかっただけだと思う。
0555NAME IS NULL
垢版 |
2017/04/24(月) 15:54:00.93ID:???
まぁ、価格カラムが50個あるので50個のクエリをunionで繋げました、よりは、クライアントで頑張る方がいいと思う
縦横変換もクライアントで頑張った方が簡単かつ検索コストも低そう
0556NAME IS NULL
垢版 |
2017/04/24(月) 17:59:56.67ID:???
まず価格カラムが50個もあるのが設計として妥当か考えるべきだがな

相関名の有効範囲がUNIONを超えるかどうかがエラーにするかどうかの境目か
そもそも実テーブルと同じ相関名ってエラーになるのが標準仕様だっけ?
0557NAME IS NULL
垢版 |
2017/04/24(月) 18:18:50.51ID:???
「だっけ?」の使い方よ
0559NAME IS NULL
垢版 |
2017/04/24(月) 18:35:58.02ID:Ng2xnlDE
だいたい別の意味の価格だから別カラムで持っているのが普通だから、質問した人間がわかってないんじゃないのか?
0560NAME IS NULL
垢版 |
2017/04/24(月) 21:05:20.45ID:???
カラムに関して誤解してる奴が多そうだな
■ このスレッドは過去ログ倉庫に格納されています

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