SQL初心者質問スレ [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
正規表現のテストは自信が持てないのに、SQLのテストは完璧に出来るという自信は何処から湧いて出るのか。
怖や怖や。 >>463
自身が持てないテストなんてテストじゃねえよw
何言っちゃってんの正規厨クンw >>463
どんな正規表現を言ってるんだよ?
よほど簡単なものしか想定してないのか。
正規表現はプロ中のプロでも間違うことがあるんだぞ?
だから複雑なものはあまり使われない。ぱっと見、これで合っているかどうかわからないのが原因。 んなことないだろ
だいたいposixかperlか2択 >>465
うえでワーワー言ってる人って、正規表現を書き間違えたことでのバグじゃなくて、仕様通りの動作をしないというバグのことを指しているとおもうよ 時と場所をわきまえずに正規自慢したがるのが正規厨なんだYO >>471
Oracleも正規表現の関数を大量に追加したものの使ってるプログラムを見たことない。
正規表現の乱用はよくないという結論は十数年前に出てるよな。
Eメールアドレスの形式チェックですら正規表現だけでやろうとすると難しくて昔はどのWebサイトもミスしまくってたな。 >>472
なんでも乱用は良くないものですよ
Eメールアドレスの形式チェック「ですら」
… >>473
正規表現だけでEメールアドレスの文字列があっているかどうかを一発で判定する正規表現を考えればいい。なかなか難しいぞ。 語彙って親や育った環境で大差がつくんだよな。知らない、あまりその人が聞かない言葉や言い回し見たり、聞いたりすると言葉がおかしいなどと批判してくる。本人が無知なだけなのに。 SQLの書き方で質問ですが、
AND句は行の先頭に書くか、行の末尾に書くか、どちらが一般的でしょうか?
(例1)
WHERE
A = 1 AND
B = 1
(例2)
WHERE
A = 1
AND B = 1
SQLの書き方ガイドラインのようなものがあれば教えてください。
よろしくお願いします。 >>480
そういう決まりはない。プログラミング言語と同じで改行せずにANDがあれば条件の続きがあるとわかりやすいが、コメントアウトしにくい。
selectの選択列のカンマ位置と同じようなもの。 うちは
where 1 = 1
and a = 1
and b = 1 UNIONやサブクエリ入るとまたちょっと変わるけど基本的に
select tableの選択セクション whereの条件セクション orderとかのその他セクション
この3つで分ける程度だな 技術士の全部門をコンプリート vs 東大理三首席現役合格 vs 旧司法試験首席一発合格
どれが一番凄い? >>481, 482, 483, 484
返信が遅くなってしまいすみません。
レスありがとうございました。
>selectの選択列のカンマ位置と同じようなもの。
なるほどそうですか。
例1も例2も好きなほうでよい、ということですね。
(例1)
SELECT
A, B, C,
D
(例2)
SELECT
A, B, C
, D
勉強になりました。 条件の内容を最初に見たいからandは後ろにつけてる。
前にあると地味にイラっとする。
where
a=1 and
b=2 >>486
東大理三首席現役合格
正真正銘期間限定延期不可一発勝負なのはこれだけ カスタマーエンジニアってどうですか?収入面とか労働面で。
楽ですか?それとも超キツイですか? このどうですか厨は、いろんな板で荒らしているだろ
相手せず、スルーしようよ C#からsqliteを使っているんですが、データベースの設計方法がわかりません、第2正規化以降って必要ですか?
必要なデータを洗い出してそこから正規化していけばいいんでしょうか?もしある程度レコードが増えた状態で新たに項目追加したいとなったらどうすればいいんでしょうか? そりゃ設計のスレだな
追加したカラムに既存のレコードも全部埋まるなら追加でいいし
埋まらないなら別に作るべきでしょ >>495
すいません
では設計スレのほうにいきます mybatis使っててDBに定義されたBLOB型のデータをバイト配列として取得する方法ってありますか? >>498
調べたらそれ普通じゃねえか。すこしは調べろよ。 https://goo.gl/q9Ml0S
これは嘘でしょ?本当だったら落ち込むわ。。 アホかと思われるかも知れませんが、
こうするとエロラーになります。
何か良い方法ないですか?
Select *
From テーブル2 ←──┐
Union All │
Select * │
From (サブクエリ) As テーブル2 >>502
ネタですか?
名前がぶつかっているのだから、あたりまえでしょうがw >>503
すいません、駄目なのはわかってて、
こういうのがやりたい時はどう書くのかなと。 どういうことをしたいのか質問内容を具体的に書かないと伝わらないぞ すごく具体的な質問だと思うけどどこが分からないのか?
クエリの結果を二重にしたいだけだろ サブクエリーを使いたいと言うことかもしれないし、
単一テーブルから二通りの選択をして結果を合算したいのかもしれないし なぜ聞かれてもいない事を深読みして答えようとするのか?
どうにかして自分が知ってる事に結びつけようとしてるだけだろお前ら >>502
unionはテーブル名見てるんじゃなくselectの中身見てるだけ
だから別名付けてどうぞ >>513
unionを同じテーブルとでしか使えないと思い込んでると仮定したわけか? >>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
別名でどう紐づけるんですか? あれ?
もしかして、Union Allじゃなくて、
単にUnionしたものに対して検索した方が速かったりします? >>516
綺麗な表ってなに?
またなんでそういう要求が
でる背景はなに? 速度が目的なら普通に検索して単価1-3の分離はクライアント側でやるのが現実的だろうね。
あるいは単価1-3をUNION ALLしたサブクエリから抽出する。賢いDBMSなら最適化してくれるかもしれない。 >>519
検索と表の整形です。
>>520
上の例では省略しましたが、
実際は、かなり横に長いんです。
商品名 単価1 単価2 単価3 ・・・ 単価50
おもいっきり横にスクロールしないと全体を見渡せない、
嫌がらせみたない表でしょう? >>522
あなたのいう綺麗な表とは?
縦にしたいの?
『おもいっきり縦にスクロールしないと全体を見渡せない、
嫌がらせみたない表。』
を作りたいの?
何が便利になるの? 商品名を抽出したいのか
商品名に対するいずれかの単価を抽出したいのか
商品名に対する全ての単価を抽出したいのか
それにしても、単価1から単価50まで並べるというのは苦痛だ
そういうテーブル定義作った奴を縛り首にした方が後々良い結果がでる >>523
データベースって普通縦なんじゃ・・・。 >>523
縦にしたいです。
うちの会社のマウスホイールは、
全部縦に回るので、縦の方が便利なんです。
この表作った人のは、横に回るのかも知れませんが。
>>528
>商品名に対する全ての単価を抽出したいのか
それです。 一つの商品に50種類もの単価が付けられると言うのは、そういう理由があるわけでしょ?
例えば、一つの商品に50個のパーツが必要でそれぞれに単価があるとか
あるいは50の地域での販売単価とか
そういう小項目も合わせて表示しないと、
意味不明の50行の単価出力にならないかな? おれなら実テーブルを変更して、元テーブルと同じ形のビューつくるけどな >>503
> 名前がぶつかっているのだから、あたりまえでしょうがw
>>513
> だから別名付けてどうぞ
なんか、同名だと駄目で当然的な流れだが、PostgreSQLではエラーにはならない。
エラーになるのが普通なのか? >>539
> 普通とは?
その疑問の意味がわからない。 インラインビューの別名に実テーブル名を使う心理がわからない。混乱するだけだと思うが。 もはや後に退けなくなった意地の質問返し
不毛である >>541
え?いやだからPostgreSQL以外のRDBMSじゃエラーになるのが普通なのかって意味だけど? >>545
そうなんだ。
いや、>>503に誰もコメントしないから、エラーになるのが普通なのかと、ちょっと心配したし。 >>542
ひょっとして、PostgreSQL以外では以下はエラーになるのが普通なの?
select * from (select a, b from hoge) as hoge
まぁ、俺も実在のテーブル名を別名につけようとは思わないんだが。 >>547
心配するな、俺の知ってる範囲ではそれはエラーにならない >これをUnionで縦に繋げれば綺麗な表になりますが、
>普通にやると検索が3倍になるので、2回目以降は前回の抽出結果を参照したいんです。
select一回で全項目を取得して、後はアプリにやらせるとか なんかよくわからんが、case whenでいけるかもよ?
データ例と期待する取得結果を書けば、ちゃんとした答えが返るかも
いまのとこ、何をやりたいのかいまいちわからん こういうこと?
RDBの縦持ちテーブルと横持ちテーブル、およびその変換について
https://gist.github.com/aamine/5565025 実体が横持ちになっているのが気に入らないが、とりあえず縦持ちのように参照するためにUNION ALLを行った。
しかし縦を横にするクエリはまだ知らない。
というところなんじゃないかな。
そのクエリがわかれば、実体を縦持ちにするのもやぶさかではないみたいな。そんな感じがする。 流れがおかしくなったのは >>503 が照れ隠しのために話を流したかっただけだと思う。 まぁ、価格カラムが50個あるので50個のクエリをunionで繋げました、よりは、クライアントで頑張る方がいいと思う
縦横変換もクライアントで頑張った方が簡単かつ検索コストも低そう まず価格カラムが50個もあるのが設計として妥当か考えるべきだがな
相関名の有効範囲がUNIONを超えるかどうかがエラーにするかどうかの境目か
そもそも実テーブルと同じ相関名ってエラーになるのが標準仕様だっけ? だいたい別の意味の価格だから別カラムで持っているのが普通だから、質問した人間がわかってないんじゃないのか? ■ このスレッドは過去ログ倉庫に格納されています