【问题标题】:Remove last character from string column in SQL Server CE从 SQL Server CE 中的字符串列中删除最后一个字符
【发布时间】:2013-01-22 23:07:12
【问题描述】:

在 SQL Server Compact 中,我试图删除一个尾随逗号,该逗号来自一个影响 NVARCHAR 列的数千行的错误。

UPDATE myTable 
SET col = LEFT(col, LEN(col)-1) 
WHERE col LIKE '%,';

抛出错误:

解析查询时出错。 [错误标记 = LEFT]

SQL Server CE 能否不解析该查询?或者,有人可以提供另一种方法吗?

注意:我在CompactView 中试过这个,我不确定是不是这个问题。

【问题讨论】:

    标签: tsql sql-server-ce


    【解决方案1】:

    基于this example 我能够使用SUBSTRING 完成它:

    UPDATE myTable
    SET col = SUBSTRING(col, 0, LEN(col))
    WHERE col LIKE '%,';
    

    【讨论】:

    • 我试过这个但没用,我用过LEFT( col, LENGTH( col ) -1 )
    【解决方案2】:

    使用SET col = SUBSTRING(col, 0, LEN(col)) 的建议解决方案有点不清楚。

    这是 SUBSTRING 第二个参数starting_position 是“基于1”的副作用。所以在这种情况下 0 是一种负数(您也可以使用即 -3 和 4 个字符将被剥离而不是 1)。 恕我直言,使用它会更清楚:

    UPDATE myTable SET col = SUBSTRING(col, 1, LEN(col)-1) WHERE col LIKE '%,';

    这显示了代码的意图

    【讨论】:

      【解决方案3】:
          UPDATE myTable
          SET col = SUBSTR(col, 0, (LENGTH(col) - 1))
          WHERE col LIKE '%,';
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-12-15
        • 2017-08-19
        • 2010-11-18
        • 2013-07-29
        • 2011-01-19
        相关资源
        最近更新 更多