我正在使用一个数据库,我提取的其中一个字段类似于:
1-117 3-134 3-133这些数字集合中的每一个都代表另一个表中的不同数据集合。以1-117为例,1 =设备ID,117 =设备设置。
我有另一个表,我需要根据前面的字段从该表中提取数据。它有两列,分别用于拆分设备ID和设置。本质上,我需要一种方法从查询的列1-117开始运行查询,以便从另一个表中提取数据,其中1和117是两个单独的对应列。
那么,有没有办法拆分这个数字来运行这个查询呢?
另外,我如何将这三个数字(1-117 3-134 3-133)拆分为三个不同的查询集?
这里的棘手之处在于,这个列可以有任意数量的集合(比如1-117 3-133或1-117 3-134 3-133 2-131)。
我在一个存储过程中创建这些查询,作为一个更大的文档的一部分,以显示提取的数据。
谢谢你的帮助。
发布于 2012-07-13 09:00:09
如果集合的增量不超过4,则可以使用Parsename检索结果
 Declare @Num varchar(20)
 Set @Num='1-117 3-134 3-133'
 select parsename(replace (@Num,' ','.'),3)
 Result :- 1-117
 Now again use parsename on the same resultset 
 Select parsename(replace(parsename(replace (@Num,' ','.'),3),'-','.'),1)
 Result :- 117如果有4个以上的值,则使用拆分函数
https://stackoverflow.com/questions/11462149
复制相似问题