list转换为string(list转换为str)

list转换为string(list转换为str)p strong 适用于 strong p

大家好,我是讯享网,很高兴认识大家。



 </nav><p><strong>适用于:</strong><img src="https://msdn.microsoft.com/includes/media/yes-icon.svg?view=sql-server-ver16" role="presentation" data-linktype="relative-path">SQL Server 2016 (13.x) 及更高版本 <img src="https://msdn.microsoft.com/includes/media/yes-icon.svg?view=sql-server-ver16" role="presentation" data-linktype="relative-path">Azure SQL 数据库 <img src="https://msdn.microsoft.com/includes/media/yes-icon.svg?view=sql-server-ver16" role="presentation" data-linktype="relative-path">Azure SQL 托管实例 <img src="https://msdn.microsoft.com/includes/media/yes-icon.svg?view=sql-server-ver16" role="presentation" data-linktype="relative-path">Azure Synapse Analytics <img src="https://msdn.microsoft.com/includes/media/yes-icon.svg?view=sql-server-ver16" role="presentation" data-linktype="relative-path">Microsoft Fabric 中的 SQL 分析终结点 <img src="https://msdn.microsoft.com/includes/media/yes-icon.svg?view=sql-server-ver16" role="presentation" data-linktype="relative-path">Microsoft Fabric 中的仓库</p> 

讯享网

是一个表值函数,它根据指定的分隔符将字符串拆分为子字符串行。

兼容性级别为 130

要求兼容性级别至少为 130。 该级别低于 130 时,数据库引擎将找不到 函数。

若要更改数据库的兼容性级别,请参阅查看或更改数据库的兼容性级别。

Transact-SQL 语法约定
讯享网

讯享网

string

任何字符类型(例如 nvarcharvarcharncharchar)的表达式。

separator

任何字符类型(例如nvarchar(1)varchar(1)nchar(1)char(1))的单字符表达式,用作串联子字符串的分隔符。

enable_ordinal

适用于:Azure SQL 数据库、Azure SQL 托管实例、Azure Synapse Analytics(仅限无服务器 SQL 池)、SQL Server 2022 (16.x) 及更高版本

一个 int 或 bit 表达式,用作启用或禁用 输出列的标志。 如果值为 ,则启用 列。 如果省略 enable_ordinal 、为 或值为 ,则禁用 列。

如果未启用 输出列, 将返回一个单列表,其中的行为子字符串。 列的名称为 。 如果任何输入参数为 nvarchar 或 nchar,则它返回 nvarchar 。 否则,将返回 varchar。 返回类型的长度与字符串参数的长度相同。

如果 enable_ordinal 参数传递的值为 ,则返回第二个名为 的列,其中包含每个子字符串在输入字符串中的位置(从 1 开始的索引值)。 返回类型为 bigint。

输入一个包含分隔子字符串的字符串,并输入一个字符用作分隔符。 根据需要,函数还支持值为 或 的第三个参数,该参数分别禁用或启用了 输出列。

输出一个单列表或双列表,具体取决于 enable_ordinal 参数。

  • 如果 enable_ordinal 为 、被省略或值为 , 将返回一个单列表,其中的行包含子字符串。 输出列的名称为 。

  • 如果 enable_ordinal 的值为 ,该函数将返回一个包含两列的表,其中 列由原始输入字符串中从 1 开始的子字符串的索引值组成。

请注意,enable_ordinal 参数必须是常数值,而不能是列或变量。 它还必须是值为 或 的 bitint 数据类型。 否则,此函数将引发错误。

输出行可以按任意顺序排列。 顺序保证与输入字符串中的子字符串顺序匹配。 可以通过使用 子句(在 语句中)覆盖最终排序顺序,例如 或 。

(char(0)) 是 Windows 排序规则中未定义的字符,无法包括在 中。

当输入字符串包含两个或多个连续出现的分隔符字符时,将出现长度为零的空子字符串。 空子字符串的处理方式与普通子字符串相同。 可以通过使用 子句筛选出包含空的子字符串的任何行,例如 。 如果输入字符串为 ,则 表值函数返回一个空表。

例如,以下 语句使用空格字符作为分隔符:

 

在实践运行中,前面的 返回以下结果表:

value

下面的示例通过为可选的第三个参数传递 来启用 列:

讯享网

然后,此语句将返回以下结果表:

value 序号 1 2 3 4 5

分析逗号分隔值列表,并返回所有非空标记:

 

如果分隔符之间没有任何内容, 将返回空字符串。 条件将删除空令牌。

生产表中的某一列为逗号分隔的标记列表,如以下示例所示:

ProductId 名称 标记

下面的查询转换每个标记列表,并将它们与原始行联接起来:

讯享网

结果集如下。

ProductId 名称 值

用户必须创建一个报表,表中显示每个标记的产品数量并按产品数量排序,然后只筛选出产品数量在两个以上的标记。

 

开发人员必须创建按关键字查找文章的查询。 可以使用以下查询:

查找具有单个标记 (clothing) 的产品:

讯享网

查找具有两个指定标记(clothing 和 road)的产品:

 

开发人员必须创建一个按 ID 列表查找文章的查询。 可以使用以下查询:

讯享网

上述 使用情况是常见反模式的替代。 此类反模式可能涉及在应用程序层或 Transact-SQL 中创建动态 SQL 字符串。 或者可以通过使用 运算符来实现反模式。 请参阅以下示例 语句:

 

以下语句将查找具有偶数索引值的所有行:

讯享网

上述语句返回以下表:

value 序号 Texas 2 Washington 4 Colorado 6

下面的语句返回输入字符串的拆分子字符串值及其序号值,按 列排序:

 

上述语句返回以下表:

value 序号 A 5 B 4 C 3 D 2 E 1

  • LEFT (Transact-SQL)
  • LTRIM (Transact-SQL)
  • RIGHT (Transact-SQL)
  • RTRIM (Transact-SQL)
  • SUBSTRING (Transact-SQL)
  • TRIM (Transact-SQL)
  • 字符串函数 (Transact-SQL)


小讯
上一篇 2025-04-18 09:45
下一篇 2025-05-07 23:14

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/145681.html