sql - 更新列以删除 SQLite 中之前的所有内容并包括空格

标签 sql sqlite

我看过these somewhat related articles寻找想法,并进行了一些搜索,例如“sqlite ltrim %”,但我很难弄清楚我做错了什么。

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

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

我尝试过:

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

我以为我可以轻松地从前面修剪空格,但我得到了“near '%':语法错误。”

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

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

这会产生“near '(': 语法错误。”

我尝试过的另一种是:

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

该程序运行成功,但没有改变任何内容。

更新为按 @scaisEdge 添加:

该列的排列方式如下:

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

期望的结果是:

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

非常感谢您的帮助!

最佳答案

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

  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, ' '))) ;

关于sql - 更新列以删除 SQLite 中之前的所有内容并包括空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40708459/

相关文章:

php - 使用 PHP 从 MySQL 选择并回显单个字段

sql - 如何根据少数列值获取重复行?

SQLite 将单行转换为多行

C++ SQLite 无法在赋值中将 `std::basic_string<char, std::char_traits<char>, std::allocator<char>>' 转换为 `char*'

python - 如何从 tkinter 条目为另一个函数生成位置参数

iphone - SQLite 数据库需要太多时间来检索(或获取一些数据)

php - 在 PHP 和 MySQL 方面需要帮助

sql - 在 SQL 中自动设置字段值

sql - 复合 SQL 连接?

ios - 四舍五入问题将 NSDecimalNumber 插入到 Sqlite 中