質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

2回答

7303閲覧

javascript sql select文で選択したテーブルの形について

mikomal

総合スコア13

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2017/06/13 14:29

###前提・実現したいこと
後述するcsvデータを、sqlを用いて
[
["新宿","山田","5月","100"],
["新宿","山田","6月","200"],
["渋谷","田中","5月","300"],
["渋谷","佐藤","6月","400"]
]
という形で取り出したいです。
###発生している問題・エラーメッセージ
現状
var data=[
["新宿","山田","5月","100"],
["新宿","山田","6月","200"],
["渋谷","田中","5月","300"],
["渋谷","佐藤","6月","400"]
]
としています。

var data=alasql('select * from sample;');
とすると同じ形での取得ができていないようです。

###該当のソースコード

javascript

1var data = alasql('select * from sample;'); 2//csvデータをテーブルにはできています。 3
sample.csvの内容 shop,staff,month,sales 新宿,山田,5月,100 新宿,山田,6月,200 渋谷,田中,5月,300 渋谷,佐藤,6月,400

###補足情報(言語/FW/ツール等のバージョンなど)
alasql('')とすることでjavascript内にsql文を書けます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gouf

2017/06/13 17:07

「想定とは違う、実際のデータ」はどのような内容ですか
guest

回答2

0

ベストアンサー

答えだけ書くとこれでどうでしょう?

var data = alasql('select * from sample;').map(function(row){ return [row.shop, row.staff, row.month, row.sales]; });

別回答者様の言うとおり、オブジェクトの形式なので、変換をしなければいけませんね。
map関数で数行でできると思います。

投稿2017/06/15 06:21

sakapun

総合スコア888

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

alasqlのselectの結果の各rowは所謂オブジェクト形式(?)のようです。カラム名がキーとして表現されているのでそれは自然な仕様に見えます。

よって単純な配列としたいなら次のように変換が必要だと思います。

javascript

1// nodejsの例 2const dbg = console.log 3 4const alasql = require('alasql'), 5 db = new alasql.Database(); 6 7db.exec("create table t1 (a int, b int)"); 8for (var i = 1; i <= 3; i++) { 9 db.exec(`insert into t1 values(${i}, ${i+2})`); 10} 11 12let resultset = db.exec("select * from t1"); 13dbg("resultset of select statement :"); 14dbg(JSON.stringify(resultset)); 15dbg(""); 16 17let array = resultset.map(row => Object.values(row)); 18dbg("converted array from resultset :"); 19dbg(JSON.stringify(array)); 20 21結果 ==> 22resultset of select statement : 23[{"a":1,"b":3},{"a":2,"b":4},{"a":3,"b":5}] 24 25converted array from resultset : 26[[1,3],[2,4],[3,5]]

(リザルトセットの各行のカラム順番がsql文での並び順になるものかどうか自分には若干あやふやです…)

投稿2017/06/13 23:23

KSwordOfHaste

総合スコア18392

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問