2016-11-19 135 views
0

執行INSERT CASE時,我有兩個表,一個是用數據填充「數據類型不匹配」中的sqlite3

CREATE TABLE `tableX` (`column1` REAL); 

INSERT INTO tableX VALUES (5); 
INSERT INTO tableX VALUES (-3); 

CREATE TABLE `tableY` 
(`rowid` INTEGER PRIMARY KEY, `column2` REAL); 

的INSERT CASE語句是

INSERT INTO tableY SELECT column1, 
CASE WHEN column1 >=0 THEN 1 ELSE 2 END as column2 FROM tableX; 

錯誤是「數據類型不匹配」中我的數據庫瀏覽器,但它似乎在sqlfiddle工作...沒有錯誤至少

任何幫助,非常感謝!感謝:D!

+0

SELECT SQLite_version();在這兩個工具中的輸出是什麼? –

+0

我的電腦上的數據庫瀏覽器是3.11.0 sqlfiddle是3.8.5 –

+1

3.16.0適用於我。你可以更新該數據庫瀏覽器工具,無論它是什麼? –

回答

1

不是最優雅的解決方案,但它是一個工作。

CREATE TABLE `tableX` (`column1` REAL); 
INSERT INTO tableX VALUES (5); 
INSERT INTO tableX VALUES (-3); 

CREATE TABLE `tableZ` (`column1` REAL, `column3` REAL); 
INSERT INTO tableZ SELECT column1, 
CASE WHEN column1 >=0 THEN 1 ELSE 2 END as column3 FROM tableX; 

CREATE TABLE 'tableY' (`rowid` INTEGER PRIMARY KEY, `column2` REAL) 
INSERT INTO tableY (column2) SELECT column3 FROM tableZ; 

DROP TABLE tableZ;