テーブルの列を後から加えていきたいのですが後ろから順番に加えるんじゃな

くて前にあった列の間に加えたりとかはできるのでしょうか?

そういったSQLがあればぜひお願いします。

A 回答 (2件)

項目をテーブル中間位置に挿入(?)することは、多分できな


いのではないかと思います。(今度から、DBは何を使ってい
るのか書いてくださいね。)

再度、テーブルを作り直した方が確実かと思います。
テーブルの変更を行うと、フラグメンテーション等が発生する
のではなかったかと思います。(自信なし)
    • good
    • 0
この回答へのお礼

できないのですね。わかりました。データがもう入力されていますから、

新しくテーブルを作り直すことはできないと思います。

C言語などで文書いていきます。

お礼日時:2001/09/26 11:09

fm0606さん、こんにちは。



文面から、リレーショナルデータベースと推測しますが、それでよろしいでしょうか。
申し訳ないのですが、どうして、そのようなオペレーションが必要なのかが理解できません。

そのような操作が必要ないように、SQL文のSELECT文節で、表示順序が変えられるようになっています。
よって、仕様上、OracleもSQLサーバも対応していないはずです。

#1で、おっしゃるように、テーブルごと設計しなおしになります。
でわ
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q意味の違い(記入事項、記入項目、記載事項、記載項目)について

意味の違い(記入事項、記入項目、記載事項、記載項目)について

僕が無知なため日本語に詳しい方がおりましたら教えて下さい。

以下の日本語の意味の違いは何でしょうか?

・記入事項
・記入項目
・記載事項
・記載項目


よろしくお願いいたします。

失礼いたします。

Aベストアンサー

・記入事項
記入する事柄

・記入項目
何を記入するか知らしめるタイトル

・記載事項
書類などにすでに書かれている事柄

・記載項目
書類等にすでに書かれいている事柄のタイトル

Qあるテーブルの内容を基準にして違うテーブルを更新するSQL文

教えて下さい。

あるテーブルに下記の内容があります。
ID│名称
─┼───
1│花
2│木
3│水

もうひとつのテーブルには、
ID│名称
─┼───
1│海
3│水
4│空
となっています。
最初のテーブルの全レコードを対象に、最初のテーブルのIDと同じ値がもうひとつの
テーブルにある場合、もうひとつのテーブルをUPDATEし、存在しなければINSERTしたい
です。
結果を
ID│名称
─┼───
1|花
2│木
3│水
4│空
を期待しています。

このようにするSQL文を教えていただけませんでしょうか。
よろしくお願いします。

Aベストアンサー

良く似た質問が過去に有りました。
回答2がぴったりだと思います。
参考にしてください。

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=604829

QOCNモバイルは申し込む際に必要事項の項目に名前をカタカナでお願いしますという項目があって本名を記入

OCNモバイルは申し込む際に必要事項の項目に名前をカタカナでお願いしますという項目があって本名を記入したらカタカナだけがエラーになりましたありえません非常に困っております

Aベストアンサー

半角になってるのでしょう

QSQLで列名の変更

ある表の列の定義ではなく、列名の名前を変更したいのですが.....。
よろしくお願いします。

Aベストアンサー

一発で行う命令はありません。

よって、作り直すしかないです。

例1:
CREATE TABLE WORK表名 (列A,列B,列C'...) AS SELECT 列A,列B,列C... FROM 元表名;
DROP TABLE 元表名;
RENAME WORK表名 TO 元表名;

#ただし、この方法はNOT NULL制約しか制約が残らない

例2:
RENAME 元表名 TO WORK表名;
CREATE TABLEのDDLを流して新たに表を作成
INSERT INTO 元表名 SELECT * FROM WORK表名;

というところでしょうか。

Q店舗賃貸 重要事項説明にない項目は重要事項説明違反にならないのですか? 新築の店舗を借りて、契約も

店舗賃貸 重要事項説明にない項目は重要事項説明違反にならないのですか?

新築の店舗を借りて、契約も契約金の支払いも終わっています。工場として借りたのですが電気の動力電源(低圧)が近くに来ておらず、電力会社に聞いたら現地調査から申請して使えるようになるまで2〜3カ月かかると言われました。

いつからでも使えるよう電気線の配線工事も全て終わっていて、今月から家賃も発生するのに電気が来ていないので稼働できません。

重要事項説明書の電気の欄には100ボルト単層、200ボルト単層としか書かれていませんが、不動産屋も工場に使うと知っているのに動力が引けない場所、とは聞いていません。

電気の欄に動力という事が書いてなければ、書いていないことは責任はないという事なのでしょうか?

これは重要事項説明違反にはならないのですか?

詳しい方がいたら、教えて下さい。

Aベストアンサー

>店舗賃貸 重要事項説明にない項目は重要事項説明違反にならないのですか?
なりません。

宅地建物取引業法
第35条  宅地建物取引業者は、宅地若しくは建物の売買、交換若しくは貸借の相手方若しくは代理を依頼した者又は宅地建物取引業者が行う媒介に係る売買、交換若しくは貸借の各当事者(以下「宅地建物取引業者の相手方等」という。)に対して、その者が取得し、又は借りようとしている宅地又は建物に関し、その売買、交換又は貸借の契約が成立するまでの間に、宅地建物取引士をして、少なくとも次に掲げる事項について、これらの事項を記載した書面(第五号において図面を必要とするときは、図面)を交付して説明をさせなければならない。

4  飲用水、電気及びガスの供給並びに排水のための施設の整備の状況(これらの施設が整備されていない場合においては、その整備の見通し及びその整備についての特別の負担に関する事項)

現況を書けば良いのでこの説明で十分です。
工場だから必ず動力線や高圧線の引き込みがいる物ではありません。
必要と思い記述がないのなら電力会社や不動産屋に確認するのが常識のある大人の行動でしょう。

>店舗賃貸 重要事項説明にない項目は重要事項説明違反にならないのですか?
なりません。

宅地建物取引業法
第35条  宅地建物取引業者は、宅地若しくは建物の売買、交換若しくは貸借の相手方若しくは代理を依頼した者又は宅地建物取引業者が行う媒介に係る売買、交換若しくは貸借の各当事者(以下「宅地建物取引業者の相手方等」という。)に対して、その者が取得し、又は借りようとしている宅地又は建物に関し、その売買、交換又は貸借の契約が成立するまでの間に、宅地建物取引士をして、少なくとも次に掲げる...続きを読む

Q同じ列に2行づつで出力するSQL

次のようなテーブルがあったとき
no | name
1 | aaa
3 | bbb
4 | ccc
6 | ddd
(先頭はカラム名です)
以下のように出力するSQLは書けますでしょうか?
no1| name1 | no2| name2
1 | aaa | 3 | bbb
4 | ccc | 6 | ddd

Aベストアンサー

列名は変更していますが、これは予約語を使いたくなかったからに過ぎません。

ID1__kname1__ID2__kname2
1_____aaa________3____bbb
4_____ccc________6____ddd

SELECT ID1, kname1, ID2, kname2
FROM (SELECT
[ID] AS ID1,
[kname] AS kname1,
DLookup("[ID]","tab1","ID>" & [ID]) AS ID2,
DLookup("[kname]","tab1","ID>" & [ID]) AS kname2,
DCount("*","tab1","ID<=" & [ID]) AS IDCount
FROM tab1) AS Test
WHERE (IDCount MOD 2)=1;

Accessならば、こういうクエリでもOKです。
考え方としては、こういうことだと思います。
なお、一旦、登録すると次のようになるようです。

SELECT ID1, kname1, ID2, kname2
FROM [SELECT
[ID] AS ID1,
[kname] AS kname1,
DLookup("[ID]","tab1","ID>" & [ID]) AS ID2,
DLookup("[kname]","tab1","ID>" & [ID]) AS kname2,
DCount("*","tab1","ID<=" & [ID]) AS IDCount
FROM tab1]. AS Test
WHERE (IDCount MOD 2)=1;

列名は変更していますが、これは予約語を使いたくなかったからに過ぎません。

ID1__kname1__ID2__kname2
1_____aaa________3____bbb
4_____ccc________6____ddd

SELECT ID1, kname1, ID2, kname2
FROM (SELECT
[ID] AS ID1,
[kname] AS kname1,
DLookup("[ID]","tab1","ID>" & [ID]) AS ID2,
DLookup("[kname]","tab1","ID>" & [ID]) AS kname2,
DCount("*","tab1","ID<=" & [ID]) AS IDCount
FROM tab1) AS Test
WHERE (IDCount MOD 2)=1;

Accessならば、こういうクエリでもOKです...続きを読む

Q経営事項審査の業務災害の項目について、確認しているんでしょうか?

いつもお世話になっております。
このたび建設業の経営事項審査審査を受けるにあたって申請書等作成したのですが、その中で「その他の審査項目」の工事の安全成績のところで、前年負傷者が1人出てしまっていたため、それを記入したのですが、ここで?と思うことがありました。弊社の属する地域が出している経営審査の際に提示する確認資料等一覧の中に、このことを証明するような書類等はまったく入っていませんでした。つまり、逆に言えばここで0と(嘘を)書いても、確認していないのだから、そのまま通過してしまうということなんでしょうか?特にこの業務災害は2年間影響しますので、入札参加資格申請を考えると大事な項目だと思うのですが、、、。このことを話したら、他の業者さんで以前実際は負傷者がいたのに、0と書いて、そのまま、パスできたなんて話も聞いております。正直者が馬鹿をみるなんてことがあるんでしょうか?皆さんのところではどうでしょうか?現実として結構ある(やっていること)ことだったりするんでしょうか?全体の点数的にも少しでもあげたい状況でどうしようか迷っております。(もちろん法的倫理的には正直に申告すべきとは思うのですが、上司も0でいいなんていいだしておりまして、、、)経験談等あれば教えてください。お願いいたします。

いつもお世話になっております。
このたび建設業の経営事項審査審査を受けるにあたって申請書等作成したのですが、その中で「その他の審査項目」の工事の安全成績のところで、前年負傷者が1人出てしまっていたため、それを記入したのですが、ここで?と思うことがありました。弊社の属する地域が出している経営審査の際に提示する確認資料等一覧の中に、このことを証明するような書類等はまったく入っていませんでした。つまり、逆に言えばここで0と(嘘を)書いても、確認していないのだから、そのまま通過して...続きを読む

Aベストアンサー

都道府県によっては、地元の労働局に照会しているところもありますが、基本的には自己申告ですので、確認は難しいです。
だからといって、経営事項審査の虚偽申請は、建設業法違反の立派な犯罪であり、現在でも15日以上の営業停止処分がなされることとなっています。
ばれないと思っていても、同業者からの通報(タレこみ)があれば一発アウトですので、やめた方がいいです。
そもそも、当サイトは、違法行為を目的とした質問や、Q&Aのやりとりが結果的に違法行為を助長すると判断される投稿は、禁止されています。

また、現行の経営事項審査のルールは今年度までのもので、現在抜本改正が予定されており、来年4月1日以降に申請するものについては、改正後のルールが適用されます。
詳細は未発表ですが、方向性としては、ペーパーカンパニーが高得点を取ることを防ぐ仕組み、虚偽申請の徹底排除の仕組みが随所に盛り込まれています。
W評点については、「賃金不払件数」や「工事の安全成績」といった自己申告によるものは、確認が難しいため、廃止されることになっています。

>特にこの業務災害は2年間影響しますので、入札参加資格申請を考えると大事な項目だと思うのですが
・とありますが、次回の経営事項審査では、この項目は廃止されています。
このほか、X1の評点テーブル、X2の計算方法、Yの経営比率、Zの計算方法など、Wも含めて全面抜本改正ですので、ご注意ください。

個人的には、「ばれないから虚偽申請してもよい」「正直者がバカを見る」というような考え方をしている建設業者がいまだに少なくないからこそ、世間の建設業界に対する視線が厳しくなるのだと思います。

都道府県によっては、地元の労働局に照会しているところもありますが、基本的には自己申告ですので、確認は難しいです。
だからといって、経営事項審査の虚偽申請は、建設業法違反の立派な犯罪であり、現在でも15日以上の営業停止処分がなされることとなっています。
ばれないと思っていても、同業者からの通報(タレこみ)があれば一発アウトですので、やめた方がいいです。
そもそも、当サイトは、違法行為を目的とした質問や、Q&Aのやりとりが結果的に違法行為を助長すると判断される投稿は、禁止されていま...続きを読む

QSQLでフィールドの順番を変更したい

お世話になっております。
ORACLEを使用しております。

既存のテーブルに新しいフィールドをSQL文にて
ALTER TABLE TEST_MST ADD TEST_CD VARCHAR2(2);
と言う風に、SQL*PLUSにて追加いたしました。

これを参照しますと、
追加したフィールドがテーブルの一番最後のフィールドに
追加されているのですが、
フィールドの順番を変更したいと考えております。
SQL文にて何か方法はございませんでしょうか。

ご返答を宜しくお願い致します。

Aベストアンサー

こんにちは。

すでに他の方が回答されている通り、列の順番を
変更する事はできません。

すでに作成されている表から、別表として作成する為には
以下の方法を使えば可能です。

表 table1:列 A,B,C
<< Cが追加したもので、順番を A,C,Bとしたい場合・・・

create table table2 as select A,C,B from table1;

で、順番を変えた表を作成する事ができます。

あとは、元表を削除してリネームですね。

drop table table1;
rename table2 to table1;

以上です。

Q住民票(全事項証明)の項目内容について

住民票(全事項証明)をある所へ提出する必要があります。
この住民票(全事項証明)にはどのような情報が記載されるのでしょうか?
少し調べてみても、申請書の記入例なら直ぐ見つかるのですが、住民票(全事項証明)自体のサンプルは見つかりません。
よろしくお願いします。

Aベストアンサー

たびたびすみません。ひょっとして参考URLにあるようなことにお使いでしょうか?検索エンジンでヒットしました「住民票謄本(全事項証明)」という表現が文章中にありますが、だとすれば、きわめて不適切な表現です。「謄本」という意味は極めて曖昧です。No.1で書いた全部の事項が載った住民票をとられるのが、確実かと思います。余談ですが、私もお客様から「住民票謄本」を下さいと言われ、よく困惑しました。全部の記載事項が載った住民票とも考えられますし、戸籍の謄本と勘違いされている場合もありました。用語を役所間で統一すべきと思います。

参考URL:http://www.dalian.cn.emb-japan.go.jp/visa_02.html

QSQLでの並べ替えを数字の順番にしたい

いつもお世話になっております。

環境はバックエンドにSQLServer2008ExpressでフロントエンドにAccess2003を使っています。
以下のような項目で並べ替えをしたいのですが、お知恵を貸してください。

名称
--------
dgc300
dgc1
a-2
a-10

これを以下のように並べ替えたいのです。

名称
--------
a-2
a-10
dgc1
dgc300

ワークテーブルを一時的につくり、そこにソート用の項目を以下のように
作ればいいところまでは調べました。

名称       並替用項目
-----------------------
dgc300        4
dgc1          3
a-2          1
a-10         2

この一時テーブルの並替用項目でorder by すればいいのですが、
名称に規則性がないものですから、一時テーブルを作るときの
並替用項目のVBAでの作成の仕方に悩んでおります。

ご教授いただければ幸いです。
どうかよろしくお願いいたします。

Aベストアンサー

参考にSQLSERVER用に関数を作りました。

abc3 は abc00003 
abc300 は abc00300 になります。

細かいツッコミはなしということでご容赦願います。


create function test (@var as nvarchar(100))

returns nvarchar(100)
as
begin

declare @v as nvarchar(100) ,@i int
declare @vv as nvarchar(100),@vn as nvarchar(100),@vnn as nvarchar(100)

set @i = 0
set @v = ''
set @vv = ''
set @vn = ''
set @vnn = ''
set @i = datalength(cast( @var as varchar(50)))

while @i > 0
begin

set @v = right(left(reverse(@var),@i),1)

if isnumeric(@v) = 0

begin
set @vv = @vv + @v

end
else
begin

set @vn = @vn + @v

end


set @i = @i - 1
end


set @vnn = substring(cast( cast(@vn as int) + cast('100000' as int) as varchar(50)),2,5)

return @vv + @vnn

end

参考にSQLSERVER用に関数を作りました。

abc3 は abc00003 
abc300 は abc00300 になります。

細かいツッコミはなしということでご容赦願います。


create function test (@var as nvarchar(100))

returns nvarchar(100)
as
begin

declare @v as nvarchar(100) ,@i int
declare @vv as nvarchar(100),@vn as nvarchar(100),@vnn as nvarchar(100)

set @i = 0
set @v = ''
set @vv = ''
set @vn = ''
set @vnn = ''
set @i = datalength(cast( @var as varchar(50)))

while @i > 0
begin

set @...続きを読む


人気Q&Aランキング

おすすめ情報