0

次のように、列IDAddressおよびTypeデータを含むテーブルがあります

1 ADD1 1
1 Add2 2
2 Add1 1
2 Add2 2

クエリを使用して、次のようにデータを取得するにはどうすればよいですか。

コラム

ID Addess1 Address2

1 Add1 Add2
2 Add1 Add2

3 番目の列を使用してType

  • が 1 の場合Type、対応する列Addressに配置する必要がありますAdd1
  • が 2 の場合Type、対応する列Addressに配置する必要がありますAdd2

上記の要件に対するクエリの書き方を提案してください。

4

4 に答える 4

0

SELECT COLUMNID, MAX(CASE TYPE WHEN 1 THEN ADDRESS1 ELSE '' END) AS ADD1, MAX(CASE TYPE WHEN 2 THEN ADDRESS1 ELSE '' END) AS ADD2 AS MY_TABLE GROUP BY COLUMNID

于 2013-09-23T17:53:47.893 に答える
0

場合によります。SQL のみを使用してサーバーにクエリを実行し、データを取得する場合は、@neoistheone の回答で提供されている SQL コードのようなものを使用します。

たとえば、VB.NET で記述されたプログラム内からデータベースにアクセスしている場合は、ストアド プロシージャを使用しTYPEてパラメータとして渡すことができます。以下のサンプルコードを参照してください。

ResetParameters() CreateParameter("Type", ADODB.DataTypeEnum.adVarChar,ADODB.ParameterDirectionEnum.adParamInput, 10, Type) RunSP("spx_Select_Data", "GlobalRS")

そして、次のようにループしてデータを表示します。

If not GlobalRS.EOF then Grid.Rows.Add(CFN(GlobalrS("ID").Value), CFN(GlobalrS("Address").Value)) GlobalRS.MoveNext(); End If

これが理にかなっていることを願っています

于 2013-09-23T14:13:18.230 に答える