SQLでの質問です。
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG| |
|a b c |
| |
|5 4 1 |
|7 4 8 |
|8 9 7 |
+----------+
このようなテーブルでカラム名「a」「b」「c」だけを取り出すSQLってどう書けば良いですか?
whereを使って書けるんですか?
0002デフォルトの名無しさん
NGNGselect column_name from any_system_catalog where table_name = 'AAA'
みたいな感じだ。後は君の使ってるデータベースによって変わるから、
自分で調べな。
00031
NGNGていうか、whereでは書けないということっすか?
00041
NGNG0005
NGNG上級向け用語キボンヌ
00061
NGNG0007デフォルトの名無しさん
NGNGなんかむかつく
00081
NGNGごめんなさい。
0009デフォルトの名無しさん
NGNGその誕生はシークゥエルというものから始まった。
いまだにSQLをシークゥエルと呼ぶアメリカ人が
いるらしい。
0010デフォルトの名無しさん
NGNGTransactSQLと呼びますが、かっこつけてサブクエリー
を使わないように。かなり速度がダウーンします。
00112
NGNG>sybase使ってますが、同根のドキュメントには書かれてないような…。
オロカモノめが。情報を求めるなら、バージョンくらい書け。
ちなみに、俺のPCに入っているSQL Anuware Studioのマニュアルにはちゃんと載ってるぞ。
SYSTABLE, SYSCOLUMNシステム・テーブルだ。
後は自分で調べろ。
00122
NGNGSELECT a FROM aaa
と書けるかどうかを聞きたいんじゃないだろうな?
00131
NGNG00141
NGNG違います。それだとデータまで出力されるので×。
カラム名だけ欲しいんです。
0015デフォルトの名無しさん
NGNGCOBOLじゃないんだから
00162
NGNG>カラム名って呼ぶの?
>COBOLじゃないんだから
呼ぶよ。フツーだろ。
>>1
これで試してみそ。これが駄目なら俺は知らん。
SELECT c.column_name
FROM systable as t, syscolumn as c
WHERE t.table_id = c.table_id
AND t.table_name = 'SYSCOLUMN'
ORDER BY c.column_id
0017デフォルトの名無しさん
NGNG歴史的に説明されるのが一番理解しやすいよね。あんがと
00181
NGNG駄目でした。
ていうか、そのままコピーペーストなので駄目だったのはわかるのですが
↑のAAAのテーブルに置き換えるとどう書きますか?
システムテーブルを絡めないと、カラム名は取り出せないのですか?
馬鹿ですいません。
00192
NGNG>↑のAAAのテーブルに置き換えるとどう書きますか?
SYSCOLUMN をAAAに置き換えれば宵。
> システムテーブルを絡めないと、カラム名は取り出せないのですか?
取り出せない。
なんらかのアプリケーション(開発環境)を使えば、検索結果のレコードセットとは別に
列名も取得できる場合もある。ただし、その内部ではシステムテーブルを見てるのだ。
どのRDBMSでも、「テーブル名」や「カラム名」などというものは、「メタデータ」と呼ばれ
てて、システムテーブルやシステムカタログと呼ばれる、RDBMSが管理する領域に
保存されているのだ。
君が「何を使って」カラム名を取得したいのかを書けば、話は広がるかもしれない。
(例えばExcelで、とか、VBでとかPHPでとかだ)
00201
NGNGがんばってますが、結果が伴いません。全然駄目です。
SYSCOLUMNを置き換えても駄目でした。
カラムプレフィクス'c'が、クエリに使用されるテーブル名またはエイリアス名と
一致しません。テーブルがFROM句に指定されていないか、または、テーブルが代わりに使用
されなければならない相関名を持っています。
なんてエラーが出ます。
>どのRDBMSでも「テーブル名」や「カラム名」などというものは、uメタデータ」と呼ばれ
>てて、システムテーブルやシステムカタログと呼ばれる、RDBMSが管理する領域に
>保存されているのだ。
ということは一般ユーザーでは取り出せないですか?
sybaseでいう所のsaだと出来るんですか?
ていうかやってみます。
何を使って取り出したいもなにも,直接です。
sybase付属のisqlでです。
PHPと連携させるのですが、一応PHPにはそういう関数が有るらしいことは知ってますが。
00212
NGNGSELECT syscolumn.column_name
FROM systable, syscolumn
WHERE systable.table_id = syscolumn.table_id
AND systable.table_name = 'AAA'
ORDER BY syscolumn.column_id
> ということは一般ユーザーでは取り出せないですか?
> sybaseでいう所のsaだと出来るんですか?
いや、俺はSybase 11.xのことは知らんのだ。
だが、こうは言える。
systableとsyscolumnの読み取り権限のあるユーザが上のクエリーを実行できる。
sa以外のユーザがsystableとsyscolumnの読み取り権限があるかどうかは知らん。
「リファレンスマニュアル」っぽいものは無いのか?
「システムカタログ」という章はどっかに無いか?
Sybaseは5年ほど前にやっただけなので、これ以上は解らん。
00221
NGNGLine 2:
カラム・プレフィクス 'c'
Line 1:
systable が見つかりません。owner.objectname を指定するか、sp_help
を使用してオブジェクトの存在を確認してください (sp_help
ではその他のオブジェクトも表示されます)。
Msg 208, Level 16, State 1:
Line 1:
syscolumn が見つかりません。owner.objectname を指定するか、sp_help
を使用してオブジェクトの存在を確認してください (sp_help
ではその他のオブジェクトも表示されます)。
だそうです。いぃぃぃぃぃぃ。
>sa以外のユーザがsystableとsyscolumnの読み取り権限あるかどうかは知らん。
そりゃそうだ。うちの環境知らんもんねぇ。
saでも駄目でした。↑のエラー。
>「リファレンスマニュアル」っぽいものは無いのか?
一緒にrpmダウンロードしてます。
>「システムカタログ」という章はどっかに無いか?
sytemtableって所見てもよくわからんのですが
無いあたまひねってがんばるっす。。
なんでさくっとカラム名ぐらい出力せんのかねぇ。。使えねぇデータベース。。
00232
NGNGじゃっ。
0024回答
NGNG00251
NGNG~
0026デフォルトの名無しさん
NGNG0027デフォルトの名無しさん
NGNG2000ではハッシュジョインがサポートされて、改善されたらしいです。
00281
NGNGめちゃめちゃおしいけど、いらん情報までも出力されました。
00292
NGNGじゃっ。
00301
NGNG0031デフォルトの名無しさん
NGNGテーブル名とカラム名は小文字?
00322
NGNGちなみに俺の流儀はO'Reillyの書籍に載っていたものです。
キーワードは大文字、それ以外は小文字で、
SELECT col1, col2
FROM table_name
WHERE col3 = 3
AND col4 = 4
と、キーワードの後ろのスペースが縦に並ぶように書きます。
なお、
・全て小文字派
・全て大文字派
・キーワードは全て大文字、テーブル名は頭1バイトが大文字、その他は小文字派
などがいるようです。
0033デフォルトの名無しさん
NGNGsp_columnsの中をのぞいてみれば?
手元に実行環境かマニュアルがあればわかるんですけど。
00341
NGNGもしくは
select * from AAA where '%' not like '%'
でした。
「1=2」の部分がどういう事なのかはまだ分かってませんが…。
0035デフォルトの名無しさん
NGNG1=2は絶対に満たすことはない。
つまり絶対に選択されない
0036デフォルトの名無しさん
NGNGどうだい?
003736
NGNG■ このスレッドは過去ログ倉庫に格納されています