【问题标题】:SQLite TRIM same character, multiple columnsSQLite TRIM 相同的字符,多列
【发布时间】:2017-01-23 22:27:09
【问题描述】:

我在 SQLite 数据库中有一个表,该表有多个带有前导“=”的列。我知道我可以使用...

SELECT TRIM(`column1`, '=') FROM table;

要清理一列,但是如果我尝试这样做会出现语法错误...

SELECT TRIM(`column1`, `column2`, `column3`, '=') FROM table;

由于参数数量不正确。

有没有比像这样单独对每一列应用修剪更有效的方法来编写此代码?

SELECT TRIM(`column1`,'=')as `col1`, TRIM(`column2`,'=')as `col2`, TRIM(`column3`,'=')as `col3` FROM table;

【问题讨论】:

    标签: sql sqlite select trim


    【解决方案1】:

    SQLite 指南如何讲述:

    修剪(X,Y)

    trim(X,Y) 函数返回一个字符串,该字符串通过删除任何和所有 从 X 的两端出现在 Y 中的字符。如果 Y 参数是 省略,trim(X) 删除 X 两端的空格。

    您只有两个参数,因此不可能将其一次性应用于 3 列表。

    第一个参数是列,或者变量就可以应用trim。第二个参数是要改变的字符。

    【讨论】:

    • 所以我必须将它们作为单独的 TRIM 调用来执行?
    • 您必须作为单独的 TRIM 调用进行调用,正如您在查询中所写的那样
    • 谢谢乔。现在分别叫他们。我注意到在另一个堆栈线程中也不建议在 SELECT 中使用 *,所以想象一下,虽然这看起来很冗长,但它是一种资源效率更高的方法。谢谢。
    • @spcurtis81:是的,如果你使用 * 通配符你不能对单个字段进行操作,所以你不能应用游览修剪逻辑。祝你有美好的一天;)
    猜你喜欢
    • 2013-04-30
    • 1970-01-01
    • 2011-12-11
    • 2016-09-28
    • 2010-12-17
    • 1970-01-01
    • 2016-09-20
    • 2018-12-03
    • 2013-12-16
    相关资源
    最近更新 更多