sql-server - 如何在SQL Server中提取这个特定的子字符串?

标签 sql-server substring

我有一个具有特定模式的字符串:

23;chair,red [$3]

即,一个数字后跟一个分号,然后是一个名称,后跟一个左方括号。

假设分号 ;始终存在且左方括号 [始终存在于字符串中,如何提取 ; 之间(且不包括)之间的文本和 [在 SQL Server 查询中?谢谢。

最佳答案

组合 SUBSTRING()LEFT()CHARINDEX() 函数。

SELECT LEFT(SUBSTRING(YOUR_FIELD,
                      CHARINDEX(';', YOUR_FIELD) + 1, 100),
                      CHARINDEX('[', YOUR_FIELD) - 1)
FROM YOUR_TABLE;

这假设您的字段长度永远不会超过 100,但如果需要,您可以通过使用 LEN() 函数更智能地解决这一问题。我没有打扰,因为那里已经发生了足够多的事情,而且我没有可以测试的实例,所以我只是盯着我的括号等。

关于sql-server - 如何在SQL Server中提取这个特定的子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10265841/

相关文章:

sql-server - 基于逗号分隔值连接表

sql-server - 我如何判断列是否可以从 nVarChar 变成 varChar?

MySQL:如果字符串末尾看起来像 'BV' UPDATE

mysql - 有人可以帮我清理一下吗? (初学者,SQL)

mysql - 如何在mysql中获取左子串

mysql - 按子串分组

sql-server - 无法修改 Azure 上的存储过程

sql-server - SQLServer 无法创建表, "Already exists",但它不是 AFAICT

sql - 如果没有返回行,则返回具有空值的行

C# - 在二进制文件中搜索模式