【发布时间】:2019-03-22 00:02:54
【问题描述】:
我使用的是 SQL Server 2012。
我需要更新一列以仅获取第一个点之前的单词。 代码具有 nvarchar 作为数据类型。
示例 - Table_A
Id Code
1 TXT.yut.get
2 yep.no
3 gT.YU.iop
4 gip
我需要在更新后得到这个
Id Code
1 txt
2 yep
3 gt
4 gip
我已经尝试过使用 T-SQL:
Update table_A
SET Code=lower(SUBSTRING(Code, 1, CHARINDEX('.',Code) - 1))
我得到这个错误:
传递给 LEFT 或 SUBSTRING 函数的长度参数无效。
它似乎与“隐形”空间有关?如何克服它?谢谢。
【问题讨论】:
-
我怀疑您的表中也有没有分隔符的值(或者它是第一个字符?)。您对
'.hi'和'png'的值有何期望? -
是的,有些情况下没有分隔符。我在上面添加了一个示例。
-
png -> png 。 .hi 的值永远不会发生......但如果是这样:hi 将是值。
标签: sql sql-server