-1

假设我有一列“Sqr”

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

我想删除平方米,以便我的列看起来像这样:

 39 
 48 
 50 
 15 
 38 
 38 
 35 

我试过这个查询,但没有用

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

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

4

3 回答 3

2

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

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

这将在任何上下文中删除米平方符号,并且它还会修剪可能由删除创建的任何悬空空白。

于 2019-12-03T10:39:16.803 回答
1

这是一个显示 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;

结果 :-

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

于 2019-12-03T10:54:49.617 回答
1

这个查询:

SELECT Sqr + 0 AS Sqr 
FROM tablename;

仅返回列的起始数字部分,删除从第一个非数字字符开始的所有字符。
请参阅演示

如果要更新表:

UPDATE tablename
SET Sqr = Sqr + 0;

请参阅演示

结果:

| Sqr |
| --- |
| 39  |
| 48  |
| 50  |
| 15  |
| 38  |
| 38  |
| 35  |
于 2019-12-03T11:05:05.100 回答