7

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

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

抛出错误:

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

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

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

4

3 回答 3

17

基于这个例子,我能够使用SUBSTRING完成它:

UPDATE myTable
SET col = SUBSTRING(col, 0, LEN(col))
WHERE col LIKE '%,';
于 2013-01-23T06:30:46.137 回答
1

建议的 using 解决方案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 '%,';

这显示了代码的意图

于 2018-04-03T15:23:43.897 回答
0
    UPDATE myTable
    SET col = SUBSTR(col, 0, (LENGTH(col) - 1))
    WHERE col LIKE '%,';
于 2016-01-29T16:15:28.373 回答