sql 字段取数问题. 请问下高手问,例如我有个字段值是 3.99*1.22*2.3(打个比方,就是 X1 * X2 * X3 的,要取X3) 我想取2.3这个数,请问下可以用sql语句怎么取? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 substring(col,len(col)-3,len(col))仅针对 2.3的情况! 本帖最后由 roy_88 于 2010-01-13 11:25:43 编辑 select right('3.99*1.22*2.3', charindex('*',REVERSE('3.99*1.22*2.3'))-1) select parsename(replace('3.99*1.22*2.3','*','.'),1) decalre @s varchar(20)set @s='3.99*1.22*2.3'select right(@s, charindex('*',REVERSE(@s))-1) declare @s varchar(20)set @s='3.99*1.22*2.3'select right(@s, charindex('*',REVERSE(@s))-1) select left(reverse(Col),charindex('*',reverse(Col))-1) --错了select reverse(left(reverse(Col),charindex('*',reverse(Col))-1)) declare @s varchar(20)set @s='3.99*1.22*2.3'select REVERSE(LEFT(REVERSE(@s), charindex('*',REVERSE(@s))-1)) -------------------- 2.3(所影响的行数为 1 行) 这个是对个别情况而已...我做想做得就是能取到 X1 * X2 * x3 这个3个数。。 declare @s varchar(20)set @s='3.99*1.22*2.3'declare @SQL varchar(100)SELECT @SQL='SELECT COL='+REPLACE(@S,'*',' UNION ALL SELECT ')EXEC(@SQL)COL ----- 3.991.222.30 SQL按物料名称并列显示问题 这个存储过程哪里错了? MS SQL 错误141 向变量赋值的SELECT语句不能与数据检索炒作结合使用 求一个sql语句 求教sql语句--有些难度 sql登陆失败,怎样知道是在哪个网页上执行的连接代码?服务器里装有iis和sql2k 无法生成sspi上下文 在事务中Delete又Insert?? 用户密码丢失,怎样解决? 如何清空一个for replication的表??? 在sql中有没有判断是否被整除的方法 怎么用存储过程得到e:\aaa\下面所有后缀名为.log的文件名称?
set @s='3.99*1.22*2.3'
select right(@s, charindex('*',REVERSE(@s))-1)
set @s='3.99*1.22*2.3'
select right(@s, charindex('*',REVERSE(@s))-1)
select reverse(left(reverse(Col),charindex('*',reverse(Col))-1))
set @s='3.99*1.22*2.3'
select REVERSE(LEFT(REVERSE(@s), charindex('*',REVERSE(@s))-1))
--------------------
2.3(所影响的行数为 1 行)
我做想做得就是能取到 X1 * X2 * x3 这个3个数。。
set @s='3.99*1.22*2.3'
declare @SQL varchar(100)
SELECT @SQL='SELECT COL='+REPLACE(@S,'*',' UNION ALL SELECT ')
EXEC(@SQL)
COL
-----
3.99
1.22
2.30