T-SQL中的变量

时间:2014-08-17 22:36:38

标签: sql sql-server tsql variables

我的表中只有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。

enter image description here

2 个答案:

答案 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

看看你是否可以找出如何将它整合到马修的代码中。