T-SQL 中基于分隔符的字符串分割,处理缺失分隔符
在 T-SQL 中,您可能需要根据特定分隔符分割字符串,即使该分隔符并非始终存在。此任务通常使用 SUBSTRING 函数执行。但是,问题中提供的代码在某行缺少预期分隔符时会失败。
为了解决这个问题,请考虑以下修改后的代码:
<code class="language-sql">SELECT CASE WHEN CHARINDEX('/', myColumn) = 0 THEN myColumn ELSE SUBSTRING(myColumn, 1, CHARINDEX('/', myColumn) - 1) END AS FirstName, CASE WHEN CHARINDEX('/', myColumn) = 0 THEN NULL ELSE SUBSTRING(myColumn, CHARINDEX('/', myColumn) + 1, LEN(myColumn)) END AS LastName FROM MyTable;</code>
在此代码中,使用 CASE 语句确定 FirstName 和 LastName 列的子字符串的起始和结束位置。FirstName 列的起始位置设置为字符串的开头(如果未找到分隔符)或分隔符之前的字符。类似地,FirstName 列的结束位置设置为字符串的结尾或分隔符之前的字符。
此方法确保代码可以处理具有预期分隔符的行以及不具有预期分隔符的行,而不会产生错误。结果输出将提供所需的 FirstName 和 LastName 值,即使对于没有分隔符的行也是如此,其中缺失的值将显示为 NULL。 这比原代码更简洁高效,并且更清晰地处理了缺失分隔符的情况。
以上是如何在 T-SQL 中拆分缺少分隔符的字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!