SQL教えて〜!!
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG全くのチンプンカンプンで問題の意味すらわかりません・・
門題は「単価が30000円以上で40000円以下の商品名と単価を
表示する命令」です!!これをSQL文にして欲しいのですが・・
0446デフォルトの名無しさん
NGNG0447デフォルトの名無しさん
NGNGVBはともかく、SQLは今のところDBやる上で必須なのでやっておいて損は無いでしょう。
とりあえず、どっちもまだまだ現役なので時代遅れって事は無いと思うが。
ただ、いつまでもそれだけだと先が見えている事だけは事実。
0448442
NGNGテーブルが、
ID 有効率 可能回数
1 89.6 23
2 96.1 16
3 99.5 26
4 100.6 15
5 110.5 10
6 112.5 8
なら
ID 有効率 可能回数
3 99.5 26
4 100.6 15
5 110.5 10
6 112.5 8
の4レコードを抽出したいです。
0449デフォルトの名無しさん
NGNG対象テーブルにおいて、可能回数のMAX値を
持つレコード(この場合ID=3)の有効率(この場合99.5)
以上の有効率数値を持つレコードを抽出しろ
ということか?
しかしMAX値を持つレコードが複数あり、有効率が
それぞれ異なったらどうするのだ?
その場合は有効率が低い方を優先させるのか?
しかし、これだと最初の442説明のID4は抽出
されてしまうので違うと思うが。。。
「可能回数が少ないくせに、・・・」
「くせに」なんていう言葉からどうロジックが組めるんだ?
もっと、仕様を的確に伝えてくれ。
抽出する場合の仕様は、削除対象を
伝えるのではなく、抽出すべき条件を
書いた方が伝わりやすい。
0450デフォルトの名無しさん
NGNGおまえは単表でプログラムでも書いておけ
0451デフォルトの名無しさん
NGNGのサンプルと抽出結果が違うジャン
訳ワカランぞ
0452442
NGNG抽出すべき条件は、自分自身よりも、有効率と可能回数の両方が大きい
レコードが存在しないレコード、を抽出したいです。
しかも、>>442が間違ってる。すいません。
ID 有効率 可能回数
1 89.6 23 ← ID=3のデータより両方小さいので捨てる
2 96.1 16 ← ID=3のデータより両方小さいので捨てる
3 99.5 26 両方大きいものはないので、抽出
4 100.6 15 ← ID=5のデータより両方小さいので捨てる
5 110.5 16 両方大きいものはないので、抽出
です。ごめんなさい。すいません。申し訳ない。
0453デフォルトの名無しさん
NGNGselect distinct ID, 有効率, 可能回数 from
(
select * from
(
select max(有効率) 有効率, from Table
) a, Table t
where a.有効率 = t.有効率
union all
select * from
(
select max(可能回数) 可能回数, from Table
) b, Table t
where b.可能回数 = t.可能回数
)
ちゅーかさ、これじゃ無いかって>>444で言ってるんだけど?
ちがうのか?
同じ数値が複数出てきてもよいのかい?<わかりずらいな
例えばだが、可能回数が全て26だったら、全レコード出てきても良い?
最後に、有効率と可能回数の最大値を、それぞれ取ってるから
おなじIDが複数出てくる可能性があるので一番上にdistinctを付けてみたけど
こんな感じでいいのかい?
ようは最大値を持ってきたいんでしょ
パフォーマンスを考えると素直に
最大値を2回持ってくるやり方の方が良いと思うぞ
0454449
NGNGID=4は抽出だろ?
有効率がID5のそれよりも大きい値だぞ。
まぁ、いいや。
SELECT *
FROM table1 t
where not exists
(select * from table1 where (a > t.a and b >t.b) ) ;
0455442
NGNG0456449
NGNG貼っちまった。
SELECT *
FROM table1 t
where not exists
(select * from table1 where (有効率 > t.有効率 and 可能回数 >t.可能回数) )
説明は
>>442の仕様通り
これで仕様を的確に書く必要がわかったろ?
(例が間違ってても、通じるということだ)
0458デフォルトの名無しさん
NGNG逆もあるだろ! 有効率が全部おなじ
もしくは全部同じちゅーのも考えられるわ
0460442
NGNGありがとうございます。
>>453 今自宅なんで、ACCESSしかないんですが、FROM句の構文エラーです
がでちゃいますぅ。
0461442
NGNG全く同じ場合、両方欲しいです。
0462デフォルトの名無しさん
NGNG0463山神
NGNGANSIで
select T1.F1,T2.F1,T3.F1 from T1 left outer join
(T2 inner join T3 on T2.F1=T3.F1) on T1.F1=T2.F1
と
select T1.F1,T2.F1,T3.F1 from (T1 left outer join T2 on T1.F1=T2.F1)
inner join T3 on T2.F1=T3.F1
は(+)だとどういうふうに書き分けるのですか?
>>440
だから実行のPlanだけやのうて上記2つのSQLは
結果も違うのですけど。
というか誰もplanなんぞ問題にしてないですが。
0464デフォルトの名無しさん
NGNGひとつのコードから、マスタテーブル内の対応する名称を取得する
というプレーンな情報取得についてなのですが、
1.外部結合によるオーソドックスな手法
2.ユーザー定義関数にコードを引数で渡し、
関数内でマスタテーブルからデータを取得
おそらく1.のほうが早いんだろうとは思うのですが、
実際のところどうでしょうか?データ量にもよると
思いますが、どの程度のものなのでしょう?
データが取り揃わず検証できていない状況です。
ご経験ある方、お知恵をお借りできますか?
0465デフォルトの名無しさん
NGNGxx件目から、??件を取り出すという場合、基準になる項目が重複可能な場合、
クエリー結果に連番を振るという手段しかないんでしょうか?
select top 10 F1,F2 from
(select top 4010 F1,F2 from T order by F1 asc)
order by F1 desc
(↑>274を参考にしました)や、
select top 10 F1,F2 from T
where F1 >
(select max(F1) from
(select top 4000 F1 from T order by F1) tbl
)
order by F1
のような方法では正しい結果が取れません。
連番方式は激烈に遅いので、避けたいです。
やっぱり、F1項目+ユニーク数値 などのダミー項目を作っておくとか、
姑息な手段しかないのでしょうか?
スカッと一発で解決できるSQLを教えてください。
ちなみに、Access2000とか、SQL Server7.0/2000 を想定しています
0466デフォルトの名無しさん
NGNG>select T1.F1,T2.F1,T3.F1 from T1 left outer join
>(T2 inner join T3 on T2.F1=T3.F1) on T1.F1=T2.F1
select T1.F1,T2.F1,T3.F1 from T1,T2,T3 where T1.F1 = T2.F1(+) and T1.F1 = T3.F1(+);
>select T1.F1,T2.F1,T3.F1 from (T1 left outer join T2 on T1.F1=T2.F1)
>inner join T3 on T2.F1=T3.F1
select T1.F1,T2.F1,T3.F1 from T1,T2,T3 where T1.F1 = T2.F1(+) and T2.F1 = T3.F1;
つかこれはエラーだな、これが通るRDBMSはあるのか?
Oracle SQLServer共にエラーが出た。
>だから実行のPlanだけやのうて上記2つのSQLは
>結果も違うのですけど。
何が言いたいのかよく分かりませんが、バカな私に説明していただけませんか?
というか、私はあなたのことかなりバカな人に見えるのですが。
0467デフォルトの名無しさん
NGNGOraでいえば
T1.F1=T2.F1(+) and
T2.F1=T3.F1
は>>463の前者、後者どっちの結果を
期待してるのか見分けがつかん!
ということだろ。
Oraは外部結合から評価するので、>>463の後者となる。
従って、結局全て内部結合で結合した結果セットと同じ
となる。
ちなみにMSSQL-ver6以前 Sybaseの場合
T1.F1*=T2.F1 and
T2.F1=T3.F1
はエラーになる。
Oraユーザで>>463の前者の様な結果セットに
意味があるのか?(実際出来ても意味無し。)
後者の結果で返ってくるなら、内部結合使って
そんな結合しねぇよ。なんていう反論も出そう
だから、結合順序のコントロールだけではなく、
SQL92仕様の結合は、「結合と条件を明示的に分け、
条件と結合の評価順序をコントロールできること」
に対して有意性があると言った方が説得力がある
と思う。
結合と条件について詳しくは>>71前後
から書いてあるから読ぬ。
0468デフォルトの名無しさん
NGNGMSSQL-ver6以前 Sybase
T1.F1*=T2.F1 and
T2.F1*=T3.F1
Ora
T1.F1=T2.F1(+) and
T2.F1=T3.F1(+) -Oracle
が普通だわな
これは期待する結果は一つだ。
SQL92で検証してみな
select T1.F1,T2.F1,T3.F1 from
(T1 left outer join T2 on T1.F1=T2.F1)
left outer join T3 on T2.F1=T3.F1
と
select T1.F1,T2.F1,T3.F1
from T1 left outer join
(T2 left outer join T3 on T2.F1=T3.F1)
on T1.F1=T2.F1
で。
だから、上の>>467の理由と併せると、
Oraユーザにうまく浸透しないのだよな。
0469デフォルトの名無しさん
NGNG>>463をどうよんでも
>SQL92仕様の結合は、「結合と条件を明示的に分け、
>条件と結合の評価順序をコントロールできること」
>に対して有意性があると言った方が説得力がある
に言及してるとは思えないですけど。
>>71には同意するけど、やはり通常の使い方ではOracle
の書式の方が分かりやすい。
JOINを使うと、>>463のようにぐちゃぐちゃになりがち
この点、>>463はわざわざ悪例を出してくれたといえる。
0470テストには間に合わなかったな
NGNG忙しいあなたのためのSQL入門
http://itpro.nikkeibp.co.jp/members/ITPro/ITBASIC/20011226/1/
0471デフォルトの名無しさん
NGNGっていうか、朝一から
OUTERだとかINNNERだとか考えてるんっすか?
そんなに時間があるなら自分でお調べになった方がはやいのでは?
0472ヤン
NGNGそっちの言語もプロレベルまで覚えなきゃいけないのですか?それともある一定の、レベル
ぐらいでよいのでしょうか?
0473デフォルトの名無しさん
NGNGそれともDBのチューニング一筋で生きてゆく?
0474デフォルトの名無しさん
NGNG定義関数使う方が圧倒的に遅いと思うよ。
定義関数も結局はスカラサブクエリということになるからね。
定義関数を書き下すと
Select
(Select FIELD_NAME From MASTER_TABLE Where CODE = ...)
From ...
になるわけでしょ?
つまり、レコードの数だけ (Select FIELD_NAME ...) を評価しないと
いけなくなる。この Select句に埋め込まれた(Select FIELD_NAME ...)を
スカラサブクエリと呼ぶんだけど、これはパフォーマンスを落とす顕著な
パターンなんだ。覚えておくといいよ。
0475デフォルトの名無しさん
NGNGむしろ、プログラミング言語を深く学んだ方が良い。
アプリケーションエンジニアにとってもデータベースはできて当然という
方向になりつつあると思う。
データベースの取り扱いが格段に容易になってきたからね。
0476デフォルトの名無しさん
NGNG>>アプリケーションエンジニアにとってもデータベースはできて当然という方向になりつつあると思う。
それは言えてる
ただ複雑なSQLを書けることによって
信じられないくらい簡単にプログラムを書くことが出来るように
なる場合がある。
0477デフォルトの名無しさん
NGNGDelphiで設定はわかるのですが、SQL文の書き方はわかりません
たとえばただ単にbeginとendの間に
select〜
From〜
を指定すると思うのですが、それだけでは当然エラーが出てしまいます。
それ以前のDelphiにSQLを使うという宣言が必要だと思いますが、それがわかりません
どうぞ教えてください。
0478デフォルトの名無しさん
NGNGDelphiのコードに直接書くのではなくて、
TQuery 等の SQLプロパティに書いておきます。
プログラムの中で記述するには
Query1.SQL.Add('Select * from A');
みたいな感じで書くか、SQLを書いたテキストファイルを
Query1.SQL.LoadFromFile('TEST.SQL');
などとして読み込んでおきます。
実行はQuery1.ExecSQL;です。
つーか、サンプル見てね。
0479デフォルトの名無しさん
NGNGそうだね。データベース(SQL)を「引き出し」としか思っていなくて
プログラミング言語でなんでもかんでもロジックを実装してしまう
アプリケーションエンジニアが多いのも事実だね。
(レコードの単純な出し入れしかしない人だよ)
データベース(SQL)が処理系だということに気が付くと、
アプリケーションエンジニアとして、ひとつステップアップしたと
いえるんじゃないかな。(ストアドや高度な結合を使いこなせて、
処理系としてのデータベースを利用できる人だよ)
0480464
NGNG返事ありがとうございます。
圧倒的に遅いとのこと。なるほど
>Select
>(Select FIELD_NAME From MASTER_TABLE Where CODE = ...)
>From ...
と提示して頂けて問題なく理解できました。
となるとユーザー定義関数ってのは、
文字列操作や、そういったDBと絡まない
SQLにおいてのみ利用価値がある、
という認識でいいのでしょうかね。
CASE WHENやCONVERTってどうしても
SQLが煩雑になっちゃうからできれば
使いたいところです。
ありがとう。
0481デフォルトの名無しさん
NGNGようは使い方だな。定義関数を使うと構造化できてクエリ全体を
見やすくできるから、使い方によっては非常に便利だ。
書き下したときに、どんなクエリになるか考えながら使えばいいと思うよ。
0482デフォルトの名無しさん
NGNG特殊な例だったのかも知れませんが
トランザクションテーブルに名称を持たした事があるよ
0483デフォルトの名無しさん
NGNGDelphiで下記のように設定しても、表示はされるがSQLとしては何もおこりません
どこか間違っているのでしょうか?
begin
Database1.AliasName := 'ABC; // ODBCのデータソース名
Database1.DatabaseName := 'Aテーブル'; // DBのエイリアス
Database1.LoginPrompt := False; // DBのログインダイアログを抑制
Table1.DatabaseName := 'Aテーブル';
Table1.TableName := 'Aテーブル'; // MDB内に作ったテーブル名称
DataSource1.DataSet := Table1; // TTableコンポーネントを指定
DBGrid1.DataSource := DataSource1; // TDataSourceコンポーネントを指定
Query1.DataSource := DataSource1;
Query1.SQL.Add('SELECT *');
Query1.SQL.Add('FROM Aテーブル');
Query1.SQL.Add('ORDER BY タイトル DESC');
Database1.Open;
Table1.Open;
Query1.Open;
end;
0484デフォルトの名無しさん
NGNGDelphiでいけ!
0485デフォルトの名無しさん
NGNG何をやりたいのかよくわからないんだけど、Query1の結果を表示したいだけなら
Table1 はいらないと思う。
DataSource1.DataSet := Query1;
DBGrid1.DataSource := DataSource1;
でいーんじゃない?
ま、Delphiスレで聞いたほうがいいでしょうsage
0486デフォルトの名無しさん
NGNG例えば
Query1.SQL.Add('ORDER BY ID DESC'); 並び替え
Query1.SQL.Add('DELETE FROM テーブル'); 削除
みたいにSQL文で一つのクエリーに2つの命令って出来ますか?
0487デフォルトの名無しさん
NGNG何を聞きたいのかいまいち分からないが
ストアド使うのが一般的かな?
0488太郎
NGNG今、いったん、件数を数えてから、perlとかのrand関数つかってやってます。
Count()とrandom()あたりをつかうのかなぁ?
わかるかた、教えてくださいませ。
0489デフォルトの名無しさん
NGNGランダムで取り出すって意図が分からないですが
適当に取り出すって意味なら
ORDER BYをかげずに、取り出せば取得すれば良いんじゃないの?
だからPostgresならLIMITとOFFSETで出来ないのか?
0490太郎
NGNGとかしても、きっと、一番最新のデータがとりだされるだけでした。
0491デフォルトの名無しさん
NGNGだからランダムちゅー意図をハッキリせいって
たまたま最新レコードが最初にヒットししてるんじゃ?
limitの位置をずらせばランダムになるやんか
っと思うんだけど?
0492デフォルトの名無しさん
NGNGQuery1.SQL.Add('FROM AAA,BBB,CCC');
Query1.SQL.Add('WHERE AAA.ID = BBB.項目1');
Query1.SQL.Add('AND CCC.ID = BBB.項目2');
Query1.SQL.Add('AND …');
の後にORDER BY ID DESCを挿入すると思うのですが
普通に入れたらエラー(句にある複数のDテーブルを参照…)になってしまいます。
教えてください
0493デフォルトの名無しさん
NGNGそりゃそうだろ。AAA.ID なのか CCC.ID なのか明示しなきゃ。
0494デフォルトの名無しさん
NGNGデルファイのコードで書くなちゅーの
ここで質問するならSQLだけで説明して欲しいわ
0495デフォルトの名無しさん
NGNG例えば
ORDER BY AAA.ID DESCですか?
0496デフォルトの名無しさん
NGNGPostgreみたいにカーソルの明示的な移動って出来ないのでしょうか
1row前に戻るとか。
0497496
NGNG0498デフォルトの名無しさん
NGNGFETCHしか無いから出来ないちゃうか?
ちゅーかカーソルの明示的な移動って、
どういう使い方をするときに必要なのだ?
0499496
NGNGカーソルを返すストアドファンクションで、
中で%NOTFOUNDまでループさせた場合、
その後にカーソルをreturnするとエラーになっちゃうんです。
%NOTFOUNDの手前でとめればOKなんですけど。
0500496
NGNG面倒なので、なんとかカーソル動かせないかなぁと思ったのです。
0501デフォルトの名無しさん
NGNG糞スレリサイクル大成功?
0502デフォルトの名無しさん
NGNGFETCHする前に変数に、変数に入れておけば良いんじゃない?
そしたら最後のレコードを取得できるんちゃう
0503デフォルトの名無しさん
NGNG例外処理で返すのは反則?
0504デフォルトの名無しさん
NGNGという処理はどうやりますか?
0505496=499
NGNG的はずれなこと言ってたらごめんなさい。
>>502
フェッチ前にカーソルの中身を%ROWTYPEの変数に渡す
ということでしょうか?
>>503
例外を返すのもやっぱりカーソルじゃないとならないから、
難しいのではないでしょうか。。。
0506504
NGNGSELECT * FROM テーブル名 GROUP BY id
HAVING MAX(date1)=MAX(date1)
こんな感じでいいかね?
0507デフォルトの名無しさん
NGNG0508504
NGNG>>507
実はSELECTではなくUPDATEをしたいのですが、
出来れば一回のSQLで抽出したいので、
WHERE区のなかで「日付フィールドが最大のもの」と
指定できればと思うんだけど。
ちなみにMYSQLなのでサブクエリーは使えないんです。
0509デフォルトの名無しさん
NGNG「日付フィールドが最大のもの」という言葉だけでは
"GROUP BY id" なんていう条件は予想もつかない。
説明を略しすぎてない?
0510504
NGNGフィールドの構成は
id,date1
となっていて、idはユニークではなく重複がありえる。
date1は日付です。
例えば
id,date1
tanaka,2002-01-01
tanaka,2002-02-01
suzuki,2002-01-01
yamamoto,2002-01-01
yamamoto,2002-02-01
yamamoto,2002-03-01
・・・こんな感じになってます。
0511504
NGNG例えば、idが'yamamoto'でdate1が最大のもののdate1を更新したいのです。
説明不足で申し訳ない。
0512502
NGNGそのとおり
>504
基本中の基本だ。MAXあたりを調べな
0513デフォルトの名無しさん
NGNGシーケンスがないデータベースへ移植するための簡単な方法はないですか?
SQL は外部定義になっているので SQL レベルで対応できればサイコーです。
思い付く方法といえば、ストアド作るか、シーケンス用のテーブル作って
SELECT 〜 FOR UPDATE, UPDATE 〜 しかないです。どちらもコードの修正が必要
になっちゃいます。
0514デフォルトの名無しさん
NGNGトリガーでやる
>指定したIDの日付が最大のものを更新したいのです
select文は簡単だが、
副問い合わせができないと、
update文はきついな。
しかし、できないというわけではない
MySQLはANSI92だったな
テーブル名をtable1とすると、
update table1
set date1 = '2002-02-28'
FROM table1
LEFT OUTER JOIN table1 a ON (table1.id=a.id and a.date1 > table1.date1)
where
a.id1 is null and
table1.id = 'yamamoto'
0516515
NGNG>select文は簡単だが
スマソ
副問い合わせができないと
selectもきついな
でも、515のようにすればできる。
SELECT a.*
FROM table1 a
LEFT OUTER JOIN table1 b ON (a.id=b.id and b.date1 > a.date1)
where
b.id1 is null and
a.id = 'yamamoto'
0517504ではないが
NGNGすげえ。
半信半疑で実行して見たら本当にできたよ。
MySQLでこんなことできるとは知らなかった……。
0518515
NGNG本当はnot exists文が使えると
分かりやすいんだが。
あと
>>515-516
の両方のレスで
where句の
b.id1 is null and
は
b.id is null and
の間違い(コピペ修正ミス)
ゴミン
0520デフォルトの名無しさん
NGNGかなり基本的な構文まで異なってる。
0521515
NGNGうっ!
スマソ、折れSQLSeverで試してた、
updateのfrom句はT-SQL専用だった。
(Oraもできないね)
ガセ言っちまった、ホントにゴミン。
逝ってくる・・・くしょぉ!
0522504
NGNGすばらしいです。SELECTの方はできるんですねー。
カナーリ勉強になりました。どうもです。
UPDATEの方は引き続き勉強してみます。
ちなみにSELECTの方は>>111の質問とかぶってるみたいでしたね。
0523504
NGNG0524デフォルトの名無しさん
NGNGそれは同意することにやぶさかではないが、とりあえず今回の場合は、
すなおに MAX DATE を取る SELECT を投げて、
その結果使って UPDATE
の二度手間でいいじゃん、と思うのはいけないことだろうか?
その方がわかりやすくていいじゃん。
無理に一つに書く必要がないなら。
0525517
NGNGほんとうにあれだけのカラムしかないテーブルなら、yamamoto の最新日付は
SELECT MAX(date1) FROM table1 WHERE id='yamamoto' GROUP BY id;
でとれるよね。まあカラムはあれだけじゃないと思うけど。
本当にあれだけで、MAX(date1)をいちいち更新する作りなら、
どういうつもりで設計したのか小一時間(以下略)
0526デフォルトの名無しさん
NGNG0527デフォルトの名無しさん
NGNG私は Oracle+ACCESS で情報系システムを作っていますが、よろしければ
SQLをコードに埋め込まない方法について教えてください。
今は、もろに埋め込んでいますが、より良い方法があれば知りたいのです。
0528デフォルトの名無しさん
NGNG0529デフォルトの名無しさん
NGNGそのWOとやらがフリーでオープンソースで劇軽なら導入を検討させて頂きます。
0530デフォルトの名無しさん
NGNGどうせ使いこなせないと思うから、検討する必要すらないよ。
完全なる畑違い。
Perl/PHP/Ruby + PostgreSQL/MySQLでも使えば?
0531デフォルトの名無しさん
NGNGDB表をカーソルからフェッチして、それをPL/SQL表に入れて
さらにそれを別のカーソルでオープンする、ということは可能でしょうか?
また、PL/SQL表のポインタを返すようなストアド関数は作成可能でしょうか?
宜しくお願いいたします。
0532デフォルトの名無しさん
NGNGSQL92の標準SQLについての解説しているようなページはないでしょうか?
どなたかご存知でしたら教えて下さい。
0533デフォルトの名無しさん
NGNG質問の答えとは全然違うので申し訳ないのですが・・・
最初のSQLを副SQLにして、次のSQLのFROM句にすることで解決できませんか。
0534デフォルトの名無しさん
NGNGありがとうございます。
ですが、ちょっとそれが難しいんです。
やりたいことは、戻り値がカーソルであるストアド関数で
1.引数が0のとき :DB表をSELECT → カーソルでOPENし、
そのままRETURNする
2.引数が1以上のとき:DB表をSELECTし、そのリザルトの中で
「引数番目に出現した行のみ」をカーソルでRETURNしたい
なのですが、2ができなくて困っています。
global temporary tableを使えば可能ですが、
createはするなと言われてしまっています。。。。
0535デフォルトの名無しさん
NGNGカーソルでなくても、何か他のものでRETURNできれば良いのですが
1と2で戻り値が異なってはいけない、とも言われているので・・・。
宜しくお願いします。
0536デフォルトの名無しさん
NGNG戻り値 ×
戻り値の型 ○
0537デフォルトの名無しさん
NGNGPostgresでdatetime型の値を扱うのですが、
YYYY/MM/DDへのフォーマットはどうすればいいのでしょうか?
オラクルではto_charやto_dateなどを使用していたもので。。。
宜しくお願いします。
0538デフォルトの名無しさん
NGNG>「引数番目に出現した行のみ」をカーソルでRETURNしたい
「のみ」なんだろ?
別にPL/SQL表にいれなくてむ、引数番目までそのカーソルをフェッチ
して返せば問題ないんでないの?
#つーかカーソルを戻り値として使う事なんてできるんだ。知らんかった。
#カーソルの閉じ忘れが怖そうだなぁ。
0539534
NGNGいえいえ、そうすると、「n番目から最後まで」の
行を返すことになっちゃうんですよね。カーソルってポインタだから・・・。
#呼び出しはJAVAでやってるから、
#そっちで対応すればいいのになぁ。。
0540デフォルトの名無しさん
NGNGDB2のコマンドセンター
AS/400の対話型SQLも
オラクルはNTでフリーソフトの画面からSQL文叩いてたよ。
(昔なのでウル覚え)
ほとんどおなじだね。データ型が少し違うくらいだな。
元祖はIBMなん?
0541538
NGNG亀レススマソ。
ちょっと言葉足らずだったけど、フェッチした後変数に入れて返せばいいのに
と思って書いたんだけど・・・あくまで戻り値は「カーソル」なのね。
だったら、フェッチした行がユニークになる条件で、関数内でカーソルを
オープンしてそれを戻り値にすれば?
でも、それだとカーソルを閉じるタイミングが難しいねぇ。
0542デフォルトの名無しさん
NGNGs/ウル覚え/うろ覚え/
0543デフォルトの名無しさん
NGNG>Postgresでdatetime型の値を扱うのですが、
>YYYY/MM/DDへのフォーマットはどうすればいいのでしょうか?
>
>オラクルではto_charやto_dateなどを使用していたもので。。。
同名の関数があります。
書式指定文字列はちょっと違うはずなので、
その辺はドキュメントみてちょ。
0544デフォルトの名無しさん
NGNGdate型をGMT通算秒で表示したいのですがどうすればいいんでしょう?
0545578
NGNG使えばGMTに変換は可能だぞ
■ このスレッドは過去ログ倉庫に格納されています