sql - 如何拆分分隔字符串以便可以访问单个项目?

标签 sql sql-server tsql split

使用 SQL Server,如何拆分字符串以便可以访问项目 x?

取一个字符串“Hello John Smith”。如何按空格分割字符串并访问索引 1 处应返回“John”的项目?

最佳答案

我不相信 SQL Server 有内置的 split 函数,因此除了 UDF 之外,我知道的唯一答案就是劫持 PARSENAME 函数:

SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 2) 

PARSENAME 获取一个字符串并按句点字符将其拆分。它接受一个数字作为第二个参数,该数字指定要返回字符串的哪一段(从后到前)。

SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 3)  --return Hello

明显的问题是当字符串已经包含句点时。我仍然认为使用 UDF 是最好的方法...还有其他建议吗?

关于sql - 如何拆分分隔字符串以便可以访问单个项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2647/

相关文章:

mysql - 我应该为同一列创建 2 个索引来加速连接吗?

sql-server - 如何以编程方式创建 ODBC 链接表到 SQL Server View 并使其可编辑?

Sql 查询在数据库中查找临时表

mysql - 嵌套情况下的 NULL 值问题

sql-server-2008 - 为 SQL Server 中的表创建 LOG

sql - MySQL 自连接

php - 我如何在创建查询时检查 mysql 数据库表字段值?

sql - 如果我在没有 ORDER BY 的情况下对 SQL SELECT 查询进行分区,结果是否具有确定性?

c# - 无法使用身份验证 = Active Directory 托管标识从 dotnet Web 应用程序连接到 Azure SQL MI

sql - T-SQL 中的中值