查看: 1167|回复: 8
|
mssql 要如何拿"之间"的数据
[复制链接]
|
|
我有个table 里 有个column
那个column 存的数据是由三个数据组成的
例如:
日期,号码1,号码2
20040120,123,999
20040121,12345,8769
20040202,2134,200
substring(columnname,10,?) as column
由于号码1的字数是不定的
请问各位,我要如何可以得到正确的号码1?
也就是说两个逗号之间的数据
[ 本帖最后由 独行剑客 于 26-10-2007 12:27 PM 编辑 ] |
|
|
|
|
|
|
|
发表于 27-10-2007 02:14 AM
|
显示全部楼层
啊,可以用SPLIT,还是类似.NET的INDEX OF, 在BOOKS ONLINE里有很多类似的例子,可以找找看. |
|
|
|
|
|
|
|
发表于 27-10-2007 03:11 PM
|
显示全部楼层
原帖由 独行剑客 于 26-10-2007 12:01 PM 发表 
我有个table 里 有个column
那个column 存的数据是由三个数据组成的
例如:
日期,号码1,号码2
20040120,123,999
20040121,12345,8769
20040202,2134,200
substring(columnname,10,?) as c ...
以下的SQL可以让你拿到号码1的数据。
select substring('20040120,123,999',10,charindex(',','20040120,123,999',10)-10)
您只需在'20040120,123,999'换成你的columnName就可以了。如有更好的方法,请纠正。
注:如有错,请纠正。 |
|
|
|
|
|
|
|
发表于 27-10-2007 05:59 PM
|
显示全部楼层
对,就是CHARINDEX.
我一时想不起来SQL里INDEXOF要怎么用,就是CHARINDEX啦. |
|
|
|
|
|
|
|

楼主 |
发表于 28-10-2007 12:17 AM
|
显示全部楼层
非常感谢你们的帮助。
我要星期一才能试。试了后在告诉你们. |
|
|
|
|
|
|
|
发表于 28-10-2007 11:51 PM
|
显示全部楼层
原帖由 阿牙木 于 27-10-2007 05:59 PM 发表 
对,就是CHARINDEX.
我一时想不起来SQL里INDEXOF要怎么用,就是CHARINDEX啦.
没错,就是charindex。版主万岁! |
|
|
|
|
|
|
|

楼主 |
发表于 29-10-2007 11:25 AM
|
显示全部楼层
我有一个问题,
Invalid Length parameter passed to the substring function
出现的同时,我也可以得到我想要得号码1.
这是为什么???
谢谢你们的帮忙,让我可以得到我想要的资料 |
|
|
|
|
|
|
|
发表于 30-10-2007 12:03 AM
|
显示全部楼层
原帖由 独行剑客 于 29-10-2007 11:25 AM 发表 
我有一个问题,
Invalid Length parameter passed to the substring function
出现的同时,我也可以得到我想要得号码1.
这是为什么???
谢谢你们的帮忙,让我可以得到我想要的资料
这可能是length的问题,因为我是以你的example来算的,可能跟你database里的length不同,所以出现问题。
你可以在substring()的parameter那儿改一改就可以了。 |
|
|
|
|
|
|
|

楼主 |
发表于 30-10-2007 12:22 PM
|
显示全部楼层
原帖由 jeftlee 于 30-10-2007 12:03 AM 发表 
这可能是length的问题,因为我是以你的example来算的,可能跟你database里的length不同,所以出现问题。
你可以在substring()的parameter那儿改一改就可以了。
哦,我试试看。谢谢你! |
|
|
|
|
|
|
| |
本周最热论坛帖子
|