从SQL Server CE中的字符串列中删除最后一个字符

时间:2013-01-22 23:07:13

标签: tsql sql-server-ce

在SQL Server Compact中,我正在尝试删除来自影响数NVARCHAR列数千行的goof的尾随逗号。

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

抛出错误:

  

解析查询时出错。 [令牌错误=左侧]

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

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

3 个答案:

答案 0 :(得分:16)

基于this example我可以使用SUBSTRING完成任务:

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

答案 1 :(得分:0)

    UPDATE myTable
    SET col = SUBSTR(col, 0, (LENGTH(col) - 1))
    WHERE col LIKE '%,';

答案 2 :(得分:0)

使用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 '%,';

显示代码的意图