sql - 选择管道分隔值
问题描述
我有一个场景可以从分隔字符串中选择单个值。
例子:
declare @Test varchar(100) = 'ABC|DEF|GHI'
由于数据库是 SQL Server 2008 版本,我不能使用拆分功能。
寻找分别拆分和选择每个值的最佳方法。
解决方案
您可以使用 CharIndex() 来查找分隔符,然后使用 SubString() 在它们之间抓取:
Declare @Test varchar(100) = 'ABC|DEF|GHI'
Declare @d1 Int = CharIndex('|',@Test,1)
Declare @d2 Int = CharIndex('|',@Test,@d1+1)
Select
Substring(@Test,1,@d1-1) As f1,
Substring(@Test,@d1+1,@d2-@d1-1) As f2,
Substring(@Test,@d2+1,len(@Test)-@d2) As f3
结果:
f1 f2 f3
ABC DEF GHI
推荐阅读
- java - 从android运行脚本获取java.io.IOException:权限被拒绝
- html - 一旦更高分辨率的图像完全加载,如何用更好的背景图像替换低分辨率的背景图像?
- javascript - OPTIONS 方法未请求凭据,401
- amazon-web-services - Ember AWS 部署失败 - CredentialsError & EHOSTUNREACH
- swift - Firebase 更新:条件绑定的初始化程序必须具有可选类型,而不是“字符串”
- node.js - Mongoose - 使用两个不同的 uri
- sql - SQL Server 对奇数 ASC 和偶数 DESC 排序
- c# - Jquery DataTables:无法将基于类的变量传递给 MVC 控制器
- jasper-reports - iReport - 创建包含不同日期数据的日历报告
- c++ - 事件框中图像的文件名