sql - 获取第一个分隔符之前的第一个单词

标签 sql sql-server

我使用的是 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))

我得到这个错误:

Invalid length parameter passed to the LEFT or SUBSTRING function.

它似乎与“隐形”空间有关?如何克服它?谢谢。

最佳答案

包含 WHERE 子句:

UPDATE table_A
     SET Code = LOWER(SUBSTRING(Code, 1, CHARINDEX('.',Code) - 1))
WHERE Code like '%.%';

关于sql - 获取第一个分隔符之前的第一个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52852660/

相关文章:

sql - 每个匹配项仅显示第一行

sql - 查询不适用于外键作为另一个表 Oracle SQL 的复合主键

sql - SQL插入查询的更好方法

java - 如何更改级联上的特定列值

sql - 双表问题

mysql - 我想找到一个在 5 分钟内尝试了 3 次登录的用户。在 MySQL 5.7 中

php - Haversine 公式 SQL 查询中记录的分组和计数

c# - 在同步框架中配置适配器

sql - 在 SQL SERVER 2008 中计算几何链接返回

c# - 防止 ASP.NET Web 应用程序上的 SQL 注入(inject)