SQL初心者質問スレ [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
>>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を超えるかどうかがエラーにするかどうかの境目か
そもそも実テーブルと同じ相関名ってエラーになるのが標準仕様だっけ? だいたい別の意味の価格だから別カラムで持っているのが普通だから、質問した人間がわかってないんじゃないのか? 物凄く初歩的で申し訳ないのですが、SQL Server2008をSQL Server2014へ
アップグレードでインストールした後、不要な2008を消したいんですが
普通にアンインストールでいいものなんでしょうか。 >>563
どうりで出てこないわけですわ。板が違うとは。
ありがとうございます。 いやまあここの板にもあるけど、DBの内容とインストール関係は別の話だな
Microsoft SQL Server 総合スレ 11
http://echo.2ch.net/test/read.cgi/db/1464508208/ 社員
社員ID、名前
社員情報
社員ID、血液型、生年月日、性別、身長
身長170cm以上の社員の名前を取得するSQLってどう書けばいいのでしょうか?
SELECT 社員.名前
FROM 社員情報
WHERE 社員情報.身長 >= 170
これで出てきますか? 社員情報に名前入れろや
お前は名無しの社員ちゃうやろアホか システムがデータベースを使っているのでどうにもできないのです
ざっくり見た感じですが、こんな感じになっていたと思います >>572
怖くて教えられない
なぜSQLを知らない人が仕事用のデータベースをいじろうとしているのか sqlなんて基本以来10年近くいじってないワイが適当回答すると
SELECT 社員.名前 FROM 社員情報 WHERE 社員.ID IN (SELECT 社員情報.社員ID FROM 社員情報 WHERE 社員情報.身長 >= 170) >>567
こうかな?
SELECT 社員.名前
FROM 社員, 社員情報
WHERE 社員情報.身長 >= 170 AND
社員.社員ID = 社員情報.社員ID >>567
社員IDで紐付いてるとかを勝手に想定してくれる訳じゃないので指定してやらないとな
SELECT 社員.名前
FROM 社員情報
INNER JOIN 社員 ON 社員情報.社員ID = 社員.社員ID
WHERE 社員情報.身長 >= 170
>>569
機微な情報は別テーブルとか普通にあるだろ >>577
機微な情報は別テーブルとかないし
別テーブルにする意味もないし
そもそも社員の名前は機微な情報ではない
まあ、お前のような多重に勘違いした独り善がりの馬鹿によって作られた
>>567のような出来損ないのスキーマはたまに見かける
あ、勘違いしやすいみたいだから一応断っておくけど
これ褒めてるんじゃないからねw 大雑把な性格の俺的には、こうかな?
SELECT *
FROM *
LEFT JOIN *
ON * = * >>578
> そもそも社員の名前は機微な情報ではない
ここまでバカだとは...
機微な情報の意味わかってないだろ w >>581
もう一つ勘違いしてるみたいだけど
2ちゃんだって素直にありがとうって言ってもいいんだからね ありがとう2ch
>>578 みたいなバカがいるってことを教えてくれて
これでいいかな w >>581
機微な個人情報 JISQ15001:2006
・思想,信条又は宗教に関する事項
・人種,民族,門地,本籍地(所在都道府県に関する情報を除く。),身体・精神障害,犯罪歴その他社会的差別の原因となる事項
・勤労者の団結権,団体交渉その他団体行動の行為に関する事項
・集団示威行為への参加,請願権の行使その他の政治的権利の行使に関する事項
・保健医療又は性生活に関する事項 >>584
それもそうだけど
>>581はそもそも社員テーブルに社員名がない事の理不尽さに気がついていない
馬鹿がその視野の狭さ故に犯す誤りの典型だねw マウンティングとかアホなワードがバズったおかげで、>>586みたいな馬鹿が出てくるんだよ >>578
> 機微な情報は別テーブルとかないし
いや、あると思うよ。
> 別テーブルにする意味もないし
異なる読み取り権限を設定できる。 機微な情報で氏名とか言い出すアホがいて笑える
どう見ても
> 社員情報
> 社員ID、血液型、生年月日、性別、身長
の方だろ schema.ini作るの面倒なんだけど、何とかならん?
テキストファイルにはIMEX=1も効かないし。 すみません、質問よろしいでしょうか
SELECT name,max(no)
from test;
これがエラーになるんですが何がいけないんでしょう?
noの最大値を持つ行のnameが知りたいだけなんですが…… SELECT name, no FROM test WHERE no = (SELECT max(no) FROM test)
こうかな >>597さんのがまさに求めていたものでした!
whereかhavingで迷ってたんですがwhereだったんですね!
>>598さんも本当にありがとうございました! サイズ違いの商品を送り 返品交換できない 悪質商法 ****E
サイズ違いの商品を送り 返品交換できない 悪質商法 B**
悪質オンラインショップ
か
担当者が悪質か
2回目のでんわたんとう窓口は すりかえようで いみふにごまkして
----------------------------------
**** *** オンラインショップのアイテムは独自の方法により採寸しておりますので、
全て実際の商品を計測した実寸サイズとなっております。
ご注文いただいております商品サイズは、正しいものでございます。
誠に恐れ入りますが、サイズが合わない、イメージと異なるといったご理由での
ご購入商品の返品・交換はお断りさせていただいております。
お客様のご希望にそう事が出来ず誠に申し訳ございませんが、
何卒ご了承の程よろしくお願い申し上げます。
----------------------------------
24いんちって Mですか? WEBの説明と実際の商品が違う 今の会社があまりにもくだらなくて転職のためSQL覚えたい
今はExcelで簡単なVBA書いてる
独学でもどこかにまず入れるだろうか…
それとPostgreSQLとMySQLとどちらがいいのか教えてください >>604
安心して
いま四種類同時に使ってるから 4種類、じゃ全部視野に入れます
4つ教えてください 標準SQLを覚えるならOracle Express Editionを入れて
alter session set flagger=entry; とか >>606
oracle
srl server
mysql
postgres DB2も入れてやれ
Express-Cっていう無償のエディションもあるぞ >>607>>608>>609
ありがとうございます!
もうVlookupひとつしか使えない人たちに便利屋扱いされたうえに勝手な都合でくだらない作業詰め込まれるのはゴメンです
最初から綺麗に無駄なく作っておけばいいのに…
でもそれを更に汚くしたのは短期で来た素人自称プログラマ
VBAばかり走らせて荒っぽい処理してエラー残骸があちこちあったり重複ばかりのファイルを量産してった
プログラム覚えてもああいう仕事は絶対したくないと思う
取っ掛かりとしてSQL覚えてその次Pythonとかも覚えたいです
絶対今のところ抜け出してやる すいません、質問させてください。
mySQLとSequel Proを使ってテーブルまで作成しています。
レコード登録時に、2つのIDをくっつけて
3つめのIDをSQL内で自動生成したいのですが、
何か効率的な方法はありますでしょうか。
ID1: 100(手入力)
ID2: 101(手入力)
↓
ID3: 100101(自動生成)
データ型はいずれもINTで設定しております。
よろしくお願いします。 >>613
それ、2行登録したら1行自動生成するってこと? >>613
行列、列行なのかわからない聞き方だが、それが列、カラムだと想定すると、トリガーでも作らないとできないだろうな。
同じレコードのカラムから導出したデータを別カラムで持つのも馬鹿っぽい。
しかも数値型を連結するなら、いったん文字型に変換しないといけない。
なんでそんなことをしたいのか。ID3なんてビューを作ってみせればいいんじゃないの? >>614
>>615
すいません、DBわかってなくて失礼しました。
ID1 ID2 ID3 name
100 101 100101 hoge
101 201 101201 fuga
ID1とID2を繋げて、ID3を生成したかったです。
プライマリキーとは別に、識別用としてのユニークなIDが必要なので。
単純に繋げるには、文字列でやらないとダメみたいですね。
ありがとうございます。 ID2が2桁の時どうするの?
ID1と2と3は同じレコードのカラムなの?
手入力ってINSERT文書くの? lpad()で0埋めしてcontat で連結して castで数値にする手もあるけど
実行時に必要ならビューでいいよね >>617
ID1, 2は3桁のものしか用意しないので基本的には問題ないかと。
すべて同じレコードのカラムですね。
先に手入力と書きましたが、実際はほぼクライアントツールの
インポート経由で登録になります。
>>618
ビューってのがあるんですね、調べてみます。
ありがとうございます。 >>619
3桁で計算もしないなら、データ型が数値型なのは変だよ。 >>620
お前の根拠もない意見なんて聞いてねえから >>621
初心者は数字は数値と思い込むのはよくあることだろ。 何でこんなに質問外の話を夢中になって始めるか、理解出来ない >>624
初心者は質問内は質問外と思い込むのはよくあることだろ。 >>619
どちらも数値で桁数が3桁固定なら、ID1 * 1000 + ID2でどうだろうか number(string(id1) || string(id2)) insert時かselect時に導出すればいいようなものをなんで別カラムで持ちたがるのか、理由をまったく言わないからなw SELECT column1,column2,column3
FROM table123
WHERE column1 like '%hoge%' OR column2 like '%hoge%' OR column3 like '%hoge%'
こういうクエリがあるんですが
column1〜3で2つのキーワードのAND検索をしたい場合どう書けばいいのでしょうか?
SELECT column1,column2,column3
FROM table123
WHERE (column1 like '%hoge%' AND column1 like '%drz%')
OR (column2 like '%hoge%' AND column2 like '%drz%')
OR (column3 like '%hoge%' AND column3 like '%drz%')
以下のように書いたのですが検索できませんでした
またもっとシンプルに書く方法があれば教えてください そもそも
>(column1 like '%hoge%' AND column1 like '%drz%')
同じc1カラムにhogeとdrzの両方があるもの、というのはあってるの? 失礼しました、よく考えたら違いました
column1〜3でhoge、drzとあればいいんです
column1にhogeとあってcolumn2もしくは3にdrzとあるものを抽出したいのです
WHERE ((column1 like '%hoge%' OR column1 like '%drz%') AND (column2 like '%hoge%' OR column2 like '%drz%'))
OR ((column1 like '%hoge%' OR column1 like '%drz%') AND (column3 like '%hoge%' OR column3 like '%drz%'))
((column1 like '%hoge%' OR column1 like '%drz%') OR (column2 like '%hoge%' OR column2 like '%drz%'))
すごく長いですがこんな感じなのでしょうか?
もっと綺麗にかけないのでしょうか? RDBMS何?
正規表現使えるやつならかなり短くできるけど、、
標準でもなんとかなるかな、長くてまだよく見てないw まだやりたいこと読み切ってるわけじゃないが
ANDの部分をサブクエリにすれば同じ検索を2回書かなくて済みそうだね >>636
それだとhogeしかない場合でもマッチしてしまうんじゃないか? ■ このスレッドは過去ログ倉庫に格納されています