sqlite 从列中删除平方米符号

sqlite remove square meters symbol from column

假设我有一列 'Sqr'

 39 м²
 48 м²
 50 м²
 15 м²
 38 м²
 38 м²
 35 м²

我想删除平方米,这样我的列将如下所示:

 39 
 48 
 50 
 15 
 38 
 38 
 35 

我试过这个查询,但没成功

SELECT REPLACE(' 45 м²', ' м²', '');

我的 sqlite 查询应该是什么样的?

如果没有正则表达式替换,您最好能做的就是智能替换:

UPDATE yourTable
SET Sqr = TRIM(REPLACE(Sqr, 'м²', ''));

这将删除任何上下文中的米平方符号,并且还会修剪可能因删除而产生的任何悬空空格。

这是一个显示 3 种方式的示例:-

DROP TABLE IF EXISTS mytable;
CREATE TABLE IF NOT EXISTS mytable (Sqr TEXT);
/*Option 1 */
INSERT INTO mytable VALUES('39 м²'),('48 м²'),('50 м²'),('15 м²'),('38 м²');
UPDATE mytable SET sqr = CAST(sqr AS INTEGER);
SELECT * FROM mytable;

/* Option 2 */
DELETE FROM mytable;
INSERT INTO mytable VALUES('39 м²'),('48 м²'),('50 м²'),('15 м²'),('38 м²');
UPDATE mytable SET sqr = replace(sqr,' м²','');
SELECT * FROM mytable;

/* Option 3 */
DELETE FROM mytable;
INSERT INTO mytable VALUES('39 м²'),('48 м²'),('50 м²'),('15 м²'),('38 м²');
UPDATE mytable SET sqr = substr(sqr,1,instr(sqr,' м²')-1);
SELECT * FROM mytable;

结果:-

这个查询:

SELECT Sqr + 0 AS Sqr 
FROM tablename;

returns 仅列的起始数字部分,删除从第一个非数字字符开始的所有字符。
参见 demo.

如果你想更新 table:

UPDATE tablename
SET Sqr = Sqr + 0;

参见demo

结果:

| Sqr |
| --- |
| 39  |
| 48  |
| 50  |
| 15  |
| 38  |
| 38  |
| 35  |