亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用java在sqlite SELECT中的列之間添加帶有空格的逗號

使用java在sqlite SELECT中的列之間添加帶有空格的逗號

至尊寶的傳說 2021-10-06 09:48:58
我在 sqlite 表中有這些列 ( MemberId, City, Stateand Postal)和( FirstNameand LastName) tblMember。我想在java中創建一個這樣的查詢:SELECT (LastName FirstName) AS 'LastName FirstName',        (City, State Postal) AS 'City, State Postal' FROM tblMember;因此,我搜索并嘗試了以下代碼,以便在 Java 中創建上述查詢,如下所示:String[] columns = new String[]{"LastName FirstName", "City, State Postal"};String fields = "";for (int i = 0; i < columns.length; i++) {    // replace comma Plus space    String field = columns[i].replaceAll(", ", " || \", \" || ");    // replace space    field = field.replaceAll(" ", " || \" \" || ");     fields += ",("+field+") AS '" + columns[i] + "' ";}String query = "SELECT MemberId"+fields+" FROM tblMember ";注意:在上面的代碼中,我使用了||sqlite 運算符進行列連接。但是,它成功地合并了空格,但沒有將逗號與空格合并,并顯示以下語法錯誤:嚴重:空 java.sql.SQLException:[SQLITE_ERROR]org.sqlite.core.DB.newSQLException(DB.java:890)處的SQL 錯誤或缺少數據庫(“||”附近:語法錯誤)在 org.sqlite.core .DB.newSQLException(DB.java:901)請幫我解決這個問題!
查看完整描述

1 回答

?
慕妹3146593

TA貢獻1820條經驗 獲得超9個贊

我相信您的主要問題是第一個replaceAll引入了空格,然后由第二個replaceAll.


我相信以下可能是您想要的:-


    for (int i = 0; i < columns.length; i++) {

        // replace comma Plus space

        String field = columns[i].replaceAll(", ", "||',ASPACEHERE'||");

        // replace space

        field = field.replaceAll(" ", "||' '|| ");

        field = field.replaceAll("ASPACEHERE"," ");

        fields += ",("+field+") AS '" + columns[i] + "' ";

    }

    String query = "SELECT MemberId"+fields+" FROM tblMember ";

"使用單引號代替雙引號',因為它們更易于使用。

所有沒有特別要求的空格都被刪除了。

第replaceAll一個需要空格的地方使用了需要空格的指示符,以便添加的空格不會被第二個替換replaceAll(ASPACEHERE 用作指示符)。

replaceAll添加了第三個以用空格替換指示符 ( ASPACEHERE )。

這導致查詢:-


SELECT MemberId,(LastName||' '|| FirstName) AS 'LastName FirstName' ,

    (City||', '||State||' '|| Postal) AS 'City, State Postal'  FROM tblMember

代替 :-


SELECT MemberId,(LastName || " " || FirstName) AS 'LastName FirstName' ,

    (City || " " || || || " " || ", || " " || " || " " || || || " " || State || " " || Postal) AS 'City, State Postal'  FROM tblMember

第一個(更正后的查詢)結果(使用如下示例數據):-

http://img1.sycdn.imooc.com//615d00a800016f1604140073.jpg

使用的整個測試 SQL 是(從正在輸出的*query變量中復制的 SELECT SQL ):-


DROP TABLE If EXISTS tblMember;

CREATE TABLE IF NOT EXISTS tblMember (MemberId INTEGER, City TEXT, State TEXT, POSTAL TEXT, LastName TEXT, FirstName TEXT);

INSERT INTO tblMember VALUES(1,'Oxford','Oxfordshire','OX12 0ND','Bloggs','Fred');

SELECT MemberId,(LastName||' '|| FirstName) AS 'LastName FirstName' ,(City||', '||State||' '|| Postal) AS 'City, State Postal'  FROM tblMember;



查看完整回答
反對 回復 2021-10-06
  • 1 回答
  • 0 關注
  • 265 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號