簡體   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