更新列以删除SQLite之前的所有内容,包括空格

时间:2016-11-20 19:30:39

标签: sql sqlite

我查看了these somewhat related articles的想法,并进行了一些搜索,例如" sqlite ltrim%"但我很难搞清楚自己做错了什么。

我想要做的是删除之前的所有内容,并在SQLite中包含空格。

一个主要问题是我必须使用来自PortableApps的SQLite,并且不能使用MySQL。

我试过了:

UPDATE `temp_Week17` SET `c_name`=ltrim(%,' ');

我以为我可以轻松地从前面轻松修剪空间,但是我得到了一个"%':语法错误。"

为了看看会发生什么,我也试过了:

    UPDATE temp_Week17
    SET c_name = LEFT(c_name, CHARINDEX(' ', c_name) - 1)
    WHERE CHARINDEX(' ', c_name) > 0

这会产生"接近'(':语法错误。"

我尝试的另一个是:

    UPDATE temp_Week17 SET c_name = ltrim(c_name, ' ');

那个成功地运行但不会改变任何东西。

更新为每个@scaisEdge添加:

列的排列如下:

    |c_name|
    --------
    |John Smith|
    |Abe Lincoln|
    |Taco Cat|

期望的结果是:

    |c_name|
    --------
    |Smith|
    |Lincoln|
    |Cat|

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

你应该连接两个字符串(修剪和空格)

  UPDATE temp_Week17 SET c_name = ltrim(c_name) || ' ' ;

或者你需要修剪之前的空间

  UPDATE temp_Week17 SET c_name = ' ' || ltrim(c_name)  ;

基于样本提供似乎你需要子串

 UPDATE temp_Week17 SET c_name = ltrim(substr( c_name, instr(c_name, ' '))) ;