日期:2014-05-17  浏览次数:20551 次

~~~~~sql server字符数数字~~~~~

有下面的一个字符串,被分为两行:
declare @str varchar(100)
set @str='|01|09|02|10|03|11|04|12|'+char(10)+'|05|13|06|14|07|15|08|16|'
select @str
--结果
--|01|09|02|10|03|11|04|12|
--|05|13|06|14|07|15|08|16| 
现在我给一个数比如declare @s varchar(2) set @s='10'
我首先找到10的位置,然后我从10后的那个数开始数,数10个数
(说明:第一行数完以后转第二行,第二行完了从第一行第一个数开始接着数)
03-11-04-12-05-13-06-14-07-15
这次数到15,那么我把15跟他对应的在同一列的那个数,也就是11一同取出,结果:11,15

再举个例子,比如我set @s='07',那么先找到07,从07后第一位开始数7个数
15-08-16-01-09-02-10,这里数到10,就取出10以及10所在列14两个值,结果:10,14

不知道怎么编程用数据库实现。这些数字的位置是固定的。

------解决方案--------------------
程序做   SQL写这个东西你不觉得有点麻烦吗?而且效率什么的......
------解决方案--------------------
declare @str varchar(100)
set @str='
------解决方案--------------------
01
------解决方案--------------------
09
------解决方案--------------------
02
------解决方案--------------------
10
------解决方案--------------------
03
------解决方案--------------------
11
------解决方案--------------------
04
------解决方案--------------------
12
------解决方案--------------------
'+char(10)+'
------解决方案--------------------
05
------解决方案--------------------
13
------解决方案--------------------
06
------解决方案--------------------
14
------解决方案--------------------
07
------解决方案--------------------