面積のAreaという数値の項目があり、SELECT時に"999m2"と単位付きで表示させたく

 SELECT Area + "m2" FROM MyTable

というクエリで出来るのですが、Areaの値ががNullや0の時は"m2"を付加させないようにするには、SQLクエリで出来ますでしょうか。

A 回答 (2件)

SQL Server が手元にないんですが、標準のSQLでしたら、



SELECT Place, CASE
WHEN Area IS NULL OR Area = 0
THEN Area
ELSE CAST(Area AS CHAR) || "m2"
END
FROM MyTable

CAST(Area AS CHAR) || "m2" の部分は、SQL Server で動くんでしたら、Area + "m2" のままでいいでしょう。
    • good
    • 0
この回答へのお礼

返事遅くなりましてすいませんでした。
教えていただいた方法で出来ました。ありがとうございました。

お礼日時:2005/08/09 18:37

where Area is not null AND Area <>0


で Areaが値をもたない場合は抽出しなければ良いのでは?

この回答への補足

どうもありがとうございます。

実際に抽出する項目はAreaだけではなく別の項目もありますので、
Areaが0かNullの行は抽出から省くということができません・・・

 SELECT Place, Area + "m2" FROM MyTable

何か方法はないものでしょうか。。。

補足日時:2005/07/27 01:41
    • good
    • 0

このQ&Aに関連する人気のQ&A

」に関するQ&A: 12星座を英語で教えて

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

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

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

Q「受圧面積」の英語は?

どなたか教えてください。

形状率(S)=受圧面積(AL)/自由面積(AF)

という関係式を英訳する場合、「受圧面積」に相当する英語は何でしょうか?

「形状率」はShape Factor、
「自由面積」はFree Areaかそのあたりだと推測しているのですが、
「受圧面積」がどうしても分からなくて困っています。

技術用語や建築用語に強い方から教えていただけると幸いです。

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

Aベストアンサー

AL=「area of load」 ではないでしょうか?

load = 負荷

受圧面積そのものなら「pressure receiving area」で使われていますね。

QNULL値をSELECTする

開発環境 
Xp Home Edtion
Microsoft Visual C++ 2008 Express Edition
Microsoft SQL Server 2005


int i=0;
String^ str1;
sSqlConnection^ sqlConn = gcnew SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\SOUTUKEN\\test.mdf;Integrated Security=True;User Instance=True");qlConn->Open();
str1= "SELECT NoID FROM Table1 WHERE hentou IS NULL OR nyuryoku IS NULL";
sqlCommand^ sqlCmd=gcnew SqlCommand(str1,sqlConn);
SqlDataReader^ exeReader=sqlCmd->ExecuteReader();
while(exeReader->Read()){
gyou[i]=exeReader[""]->ToString();
i++;
}
sqlConn->Close();

SELECT文でhentou,nyuryokuのどちらか一方でもNULLならばそのNoIDを取り出すということをしたいのですが、
"sqlCommandが定義されていない識別子です。"というエラーが出てきます。
SQL文が間違っていると思うのですがどのようにしたら良いのでしょうか何卒よろしくお願いします。

開発環境 
Xp Home Edtion
Microsoft Visual C++ 2008 Express Edition
Microsoft SQL Server 2005


int i=0;
String^ str1;
sSqlConnection^ sqlConn = gcnew SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\SOUTUKEN\\test.mdf;Integrated Security=True;User Instance=True");qlConn->Open();
str1= "SELECT NoID FROM Table1 WHERE hentou IS NULL OR nyuryoku IS NULL";
sqlCommand^ sqlCmd=gcnew SqlCommand(str1,sqlConn);
SqlDataReader^ exeReader=sqlCmd->ExecuteReader(...続きを読む

Aベストアンサー

小文字だからじゃないですか?
sqlCommand^ sqlCmd=~
     ↓
SqlCommand^ sqlCmd=~

Q文章の英訳

「ベトナムの面積は、日本から九州までを除いたぐらいの大きさである。」
という文章の英訳をお願いします。
宜しくお願いします。

Aベストアンサー

>>ベトナムの面積は、日本から九州までを除いたぐらいの大きさである。

はて???「日本から九州までを」とはどういう意味でしょうか。
「日本から九州を取り除いた後の大きさ」と解釈しておきます。

The gross area of Vietnum is approximately as large as that of Japan after excluding Kyushu.

Qwhere句内でのselectクエリについて

where句内のselect副問い合わせは問い合わせの行数回行われると聞いたのですか本当でしょうか?
ベンダによって異なるのでしょうか?当方sqlserverは初めてでoracleをずっと使っていましたが聞いたことがなかったので。ベンダによって異なるなんてことはあるのでしょうか

以下の例でsqlserver2014で実際行ったところ確かにジョインした方が早いことがわかりました。
テーブルA 1件
テーブルB 2000件

【遅い例】
select 列1
from B
where B.列2 ≦ (select 列3 from A)

【早い例】
select 列1
from B inner join A
where B.列2 ≦ A.列3

Aベストアンサー

select 列1 from B WHERE B.列2 <= ANY(SELECT 列3 FROM A)
をやっていますね
エンジンにもよりますがこういったANYは相関サブクエリにならないので遅いんですよ
実際には連携状態をみるコマンドを利用しないと説明がつきませんが
sqlserverの仕様がよくわからないので説明できません。

Q英訳をお願いしますm(_ _)m

Thunderstorms come once every five days.
「激しい雷雨が、5日に1度やってくる」と、したいのですが、
動詞は、come で、よいのでしょうか。
また、「この面積は、日本の首都圏1都6県の面積に匹敵する。」
を、できるだけ簡単な英語で英訳をしていただきたいです。
お願い致します。

Aベストアンサー

ツッコミが入らないようですので、私から訂正を。

>This area is equal to the whole area of the Tokyo metropolitan area in Japan where includes the surrounding six prefectures besides Tokyo.

についてです。

長いので、一部だけ取り出して

the area of the metropolitan area in Japan ( ) includes the surrounding six prefectures

とします。

上記の文の( )内には関係副詞 where は入りません。
というのも、( )には関係詞節中の主語(includes の主語)が必要だからです。
主語になるのは、名詞的要素ですが、関係副詞は文字通り関係詞節中で副詞の働きをします。
したがって、( )内に where を用いた上記例文は includes の主語を欠き、
英文として成立しません。


補足

関係副詞 where は in which と書き換えられます。which がありますので、
名詞的要素は持ちますが、この名詞的要素は関係詞節中で前置詞 in の目的語になっており、
関係詞節中の主語にはなりえません。

というわけで( )内には単に関係代名詞 which を入れれば良いでしょう。


なお、関係副詞 where は主節中では名詞の役割を果たすことがあります。

例:My house is very far from where I work.

where が主節中で from の目的語として働いている
(My house is very far from where) と共に、
関係詞節中で副詞として働いている
(where I work) ことを確認してください。
ここでは、関係副詞 where は先行詞 the place を含んでいると考えられます。

My house is very far from the place where I work.

ツッコミが入らないようですので、私から訂正を。

>This area is equal to the whole area of the Tokyo metropolitan area in Japan where includes the surrounding six prefectures besides Tokyo.

についてです。

長いので、一部だけ取り出して

the area of the metropolitan area in Japan ( ) includes the surrounding six prefectures

とします。

上記の文の( )内には関係副詞 where は入りません。
というのも、( )には関係詞節中の主語(includes の主語)が必要だからです。
主...続きを読む

QSELECT のWHEREに別のSELECT

SELECT のWHEREに別のSELECTの結果を当てはめることは可能でしょうか?
ただし、引用テーブルは同じテーブルとします。(DDD)

SELECT * FROM DDD WHERE B = (SELECT B FROM DDD WHERE C=1)

再起SQLとはまた違うのでしょうか?

Aベストアンサー

副問い合わせと言われています。
http://www.sql-reference.com/select/subquery.html

カッコ内のSQLの問い合わせ結果が必ず1件になる場合に利用できます。

----
何か一冊本を購入されることをお勧めします。SQL ServerもExpress版なら無料ですし。

Q英訳教えてください

as を使っての英訳を教えてください


1)その旅は思っていたほど長くかからなかった

2)あなたの国の面積はわが国の面積の3分の2である

3)あのレスラーは私の3倍の体重がある

4)日本人は今日10年目の2倍の量の石油を使っている

5)若いうちにできるだけ多くの知識を得ようとしなさい

よろしくお願いします!!

Aベストアンサー

1. The trip did not take so long as I had expected.

2. Your country is two-thirds as large as my country.

3. That wrestler weighs three times as much as I do.

4. Japanese people use twice as much oil as they used ten years ago.

5. Try to acquire as much knowledge as you can when you are young.

Qクエリを分割せずに一つにまとめたクエリについて

以前投稿したのですが、抽出するテーブルに問題があり、
再度投稿させて頂きます。
SQLを使うのが初心者なので勉強をしながら作業を行なっています。そのため説明不足などありましたらご指摘願います。
[環境]
 データベース:SQLServer2005

質問内容は、
会員マスタテーブル
会員CD,会員住所,SHIMEI,KOSHINDAY
0001,東京,太郎,20090101
0001,千葉,太郎,20090102
0002,東京,次郎,20090101
0002,大阪,次郎,20090109
0003,大阪,三郎,20090109
0003,奈良,三郎,20090110
0004,大阪,四郎,20090109

代理人テーブル
会員CD,代理人CD,業務CD,KOSHINDAY
0001,0002,15,20090101
0001,0003,15,20090102
0002,0001,01,20090201
0002,0004,10,20090202
0003,0001,10,20090201
0003,0004,15,20090202
上記のようなテーブルがあります。
抽出結果ですが、
会員CD,会員住所,SHIMEI,KOSHINDAY,代理人CD,代理人住所,代理人名...
0001,千葉,太郎,20090102,0003,奈良,三郎,20090110
0002,大阪,次郎,20090109
0003,奈良,三郎,20090110,0004,大阪,四郎,20090109

会員マスタテーブルにて、各会員のKOSHINDAYが最大のデータを抽出します。
会員マスタテーブルの会員CDを元に、代理人テーブルを検索し各々KOSHINDAYが最大の代理人CDを求め、その時に業務CD=15のものだけを選び、
選び出された代理人CDで、会員マスタテーブルを検索し、
代理人の住所・氏名を抽出します。

上記内容なのですが、一回のSQL文で抽出が可能でしょうか?
仮想的にアクセスで検証したのですが、
作成出来ませんでした、すいませんが宜しくお願いします。

以前投稿したのですが、抽出するテーブルに問題があり、
再度投稿させて頂きます。
SQLを使うのが初心者なので勉強をしながら作業を行なっています。そのため説明不足などありましたらご指摘願います。
[環境]
 データベース:SQLServer2005

質問内容は、
会員マスタテーブル
会員CD,会員住所,SHIMEI,KOSHINDAY
0001,東京,太郎,20090101
0001,千葉,太郎,20090102
0002,東京,次郎,20090101
0002,大阪,次郎,20090109
0003,大阪,三郎,20090109
0003,奈良,三郎,20090110
0004,大阪,四郎,20090109

...続きを読む

Aベストアンサー

>エイリアスをA・B・Cと付けた場合に、次のエラー表示がされるのですが、どのような対処をすれば宜しいのでしょう。
>ちなみにA・B・Cをそれぞれのテーブル名
>A=会員マスタテーブル B=代理人テーブルとした場合は、エラーになりません。

クエリの後ろのエイリアスだけ変更して、「ON」の後ろの結合条件を変更しなかったときには、そのようなメッセージが出ます。
たとえば、こんな感じに

LEFT OUTER JOIN
(SELECT * FROM 代理人テーブル b1
WHERE b1.KOSHINDAY IN
(SELECT MAX(KOSHINDAY) FROM 代理人テーブル WHERE 会員CD=b1.会員CD)) b
ON 代理人テーブル.会員CD=会員マスタテーブル.会員CD

気をつけていただきたいのは、クエリは階層になっているわけですので、最終的なSELECT文はもはやクエリの結果を返すのに
会員マスタテーブルや代理人テーブルを直接は参照しておらず、あくまでも3つのクエリの結果(a,b,c)だけを使っているという点です。
従って、結合にはa,b,cだけを使うことができます。

>会員テーブルの更新日で(MAX関数)による抽出に対しては、1会員1行になる事は、確認済みです。

私が#2で書いたクエリは、

SELECT * FROM 会員マスタテーブル a1
WHERE a1.KOSHINDAY IN
(SELECT MAX(KOSHINDAY) FROM 会員マスタテーブル WHERE 会員CD=a1.会員CD)

SELECT * FROM 代理人テーブル b1
WHERE b1.KOSHINDAY IN
(SELECT MAX(KOSHINDAY) FROM 代理人テーブル WHERE 会員CD=b1.会員CD)

この上記2つのクエリ結果が常に1会員1行になるのであれば、会員CDでの重複は絶対に発生しません。
実際の環境に合わせてどのように書き換えられたかわかりませんので、そこをチェックしていただきたいです。

>エイリアスをA・B・Cと付けた場合に、次のエラー表示がされるのですが、どのような対処をすれば宜しいのでしょう。
>ちなみにA・B・Cをそれぞれのテーブル名
>A=会員マスタテーブル B=代理人テーブルとした場合は、エラーになりません。

クエリの後ろのエイリアスだけ変更して、「ON」の後ろの結合条件を変更しなかったときには、そのようなメッセージが出ます。
たとえば、こんな感じに

LEFT OUTER JOIN
(SELECT * FROM 代理人テーブル b1
WHERE b1.KOSHINDAY IN
(SELECT MAX(KOSHINDAY) FROM ...続きを読む

Q源泉徴収の英訳をしたい

留学のために「給与所得の源泉徴収票」を自分で英訳してたいのですが、英訳するために参考になるサイトやPDFをご存知でしたら、教えてください。

ちなみに、源泉徴収票を自分で英訳したとして、その英訳について保証するような保証書もつけた方がよろしいでしょうか?

よろしくお願いします。

Aベストアンサー

>英訳するために参考になるサイトやPDFをご存知でしたら、教えてください。

http://www.alc.co.jp/

>源泉徴収票を自分で英訳したとして、その英訳について保証するような保証書もつけた方がよろしいでしょうか?

素人の方が自分で英訳したものには保証書はつけられません。保証書が必要な場合は、専門機関に頼まなければなりません。

QAccessのクエリをSqlサーバーのクエリへ変換

Accessで書かれたクエリをSqlサーバーのクエリに変換したいと考えているのですが
そのクエリは膨大な行数ある上にIIF関数やSwitch関数がそこら中に含まれており、一つ一つ置換していられません。

もしどなたかIIF関数などのAccessのクエリをSqlサーバーのクエリへ変換してくれるソフトをご存知の方いらっしゃいましたら教えていただければ幸いです。

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

◆バージョン
SQL Server:SQL Server 2008 R2
ACCESS:ACCESS2000
OS:Windows7

Aベストアンサー

実際に使ったことがないのであまり自信がないのですが、Access オブジェクトの SQLServer への移行にMicrosoft SQL Server Migration Assistant (SSMA) for Access というツールが使えるようなことが書いてあります。たしかクエリも Access オブジェクトの一種でしたよね。試してみてはいかがでしょうか。

SQLServer 関連ソフトウェアのダウンロードページ(SSMA for Access へのリンクあり):
http://www.microsoft.com/ja-jp/sqlserver/2012/downloads/default.aspx

SSMA for Access の使い方(英語):
http://blogs.msdn.com/b/ssma/archive/2011/01/29/access-to-sql-server-migration-how-to-use-ssma.aspx


人気Q&Aランキング

おすすめ情報