1

1 ~ 5、6 ~ 9 などの数量範囲と別の列の価格を持つ列があるテーブルがあります。すなわち

価格 数量
------------------------
価格数量範囲
----- ----------
45 1-5
35 6-9
30 10-18

ここで、数量が 7 のテーブルから結果を取得したいので、返される価格は 35 である必要があります (数量 7 は 6 ~ 9 の範囲にあるため)

どんな助けでも大いに感謝します

4

2 に答える 2

3

これを試して :-

  Declare @val int
  Set @val=7

 ;with cte(price,startVal,endVal) as
  ( Select price,
    parsename(replace([Qty Range],'-','.'),2),
    parsename(replace([Qty Range],'-','.'),1)
    from yourTable
  )
  Select Price from cte 
  where @val between startVal and endVal

結果 :35

SQL FIDDLEでのデモ

于 2013-04-22T09:58:58.993 に答える