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 |
假设我有一列 '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 |