我的表中只有1列,在此表中有输入,如990x70,980x50。 我需要'x'左右两侧的值来计算这两个值的英寸。使用此代码,我只从数据库中获取最后一个注册条目。我怎样才能获得所有参赛作品? (注意:我必须在这个项目中使用变量。)
declare @Value1 numeric(18,1)
declare @Value2 numeric(18,1)
select
@Value2 = SUBSTRING(
[Values],
CHARINDEX('x', [Values]) + 1,
LEN([Values])) ,
@Value1 = SUBSTRING(
[Values],
1,
CHARINDEX('x', [Values]) - 1)
from myTable
select @Value1=@Value1/(2.54)
select @Value2=@Value2/(2.54)
select @Value1,@Value2 from myTable
编辑:我的表中有4种不同的尺寸,我得到相同的结果4次。 我想得到的所有结果不仅仅是1。
答案 0 :(得分:1)
现在,诚然,我并不完全清楚你在问什么。但听起来这样的事情应该有效:
SELECT CONVERT(NUMERIC(18,1), SUBSTRING([Values], CHARINDEX('x', [Values]) + 1, LEN([Values]))) / 2.54,
CONVERT(NUMERIC(18,1), SUBSTRING([Values], 1, CHARINDEX('x', [Values]) - 1)) / 2.54
FROM myTable
这应该只是做你正在做的事情,但没有任何变量(在你的使用中,本质上是一维的)。
答案 1 :(得分:0)
如果必须使用变量,请从以下开始:
declare @Delimiter varchar(1)
declare @CMtoInches DECIMAL(19,2)
Set @delimiter = 'x'
Set @CMtoInches = 2.54
看看你是否可以找出如何将它整合到马修的代码中。