繁体   English   中英

T-SQL中的变量

[英]Variables in T-SQL

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

在此处输入图片说明

现在,诚然,我对您的要求尚不完全清楚。 但是听起来像这样应该可以工作:

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

那应该和您所做的一样,但没有任何变量(在您的用法中,本质上是一维的)。

如果必须使用变量,请从此开始:

declare @Delimiter varchar(1) 
declare @CMtoInches DECIMAL(19,2)

Set @delimiter = 'x'
Set @CMtoInches = 2.54

看看是否可以解决如何将其集成到Matthew的代码中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM