HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0323
jiroSQLのSELECT 〜 from〜について7解決


jiro

リンク

2010/3/23(Tue) 20:49:49|NO.31505

下のエクセル表から
SELECT * from A1:C5
で*部に当たるフィールド名に改行やスペースがあると
「SQLの送信に失敗しました。(3)」となってしまいます。
どなたか対処方法がわかる方、教えてください。


sample\hspdb\test3.hsp からB1をフィールド名として検索したいので
sql="SELECT 名 前/nname from A1:C4"としました。

   A列  B列  C列
1行 項   名 前  年齢  
       name
2行 1 taro 22
3行 2 jiro 44

B1にスペースや改行がない場合は、問題なくデータが取得できました。



この記事に返信する


ANTARES

リンク

2010/3/25(Thu) 05:26:34|NO.31549

 半角スペースを含む列名は「`」で囲むことにより指定できますが、
流石に改行コードは無理のようです。



tsuka

リンク

2010/3/28(Sun) 18:37:37|NO.31603

調べるといろいろ出てきます。ExcelのSQL文法にも適用できるかはわかりませんが、


sql = "SELECT '名 前'+ CHAR(10) + CHAR(13) +'name' from A1:C4" //sql = "SELECT '名前'|| CHAR(10) || CHAR(13) ||'name' from A1:C4"

とすることで改行を表せるようです。



maa

リンク

2010/3/28(Sun) 20:19:46|NO.31605

改行は\\nを試してみましたが、ダメなようですね。
直接的な解決にはなりませんが、excelの二行目にSQLで使い易いのフィールド名を付けて
select name from a2:c4のように二行目から検索するとSQL文を作るのが楽になる気がします。



jiro

リンク

2010/3/30(Tue) 22:46:44|NO.31678

回答いただきまして、ありがとうござまいす。
改行コードが含まれると難しいようです。もう少し考えてみます。
半角スペースは、ANTARES様から回答頂いた様に、半角部を以下のように「`」で囲みましたが、
上手くいきませんでした。

sql="SELECT 名` `前 from A1:C4"



ANTARES

リンク

2010/3/31(Wed) 03:40:32|NO.31685

 列名を囲んでください。
sql="SELECT `名 前` from A1:C4"



ANTARES

リンク

2010/3/31(Wed) 04:38:57|NO.31687

 「[]」や「"」でもいいようです。
sql="SELECT [名 前] from A1:C4"
sql="SELECT \"名 前\" from A1:C4"



jiro

リンク

2010/3/31(Wed) 20:26:21|NO.31716

解決することができました。
ご回答くれた方
ありがとうございます。



ONION software Copyright 1997-2021(c) All rights reserved.