根据SQL数据库中的2个字段计算值

时间:2011-07-14 19:52:56

标签: sql

我可以使用linq easy做到这一点,但我遇到了一种情况,我必须根据表B中的2个字段(minrange,maxrange)创建一个存储过程来返回true或false。因此,目标是从表A,我从表A中选择范围值,并将该值与表B中的2个范围进行比较。如果值在范围内(minrange,maxrange),则返回true。感谢。

2 个答案:

答案 0 :(得分:1)

我假设您有一个字段允许您将表A中的记录连接到表B.我将其称为“CategoryID”。试试这个:

SELECT 
    CASE WHEN TableA.Value BETWEEN TableB.MinValue AND TableB.MaxValue 
         THEN 1 ELSE 0 END
FROM TableA 
    INNER JOIN TableB ON TableA.CategoryID = TableB.CategoryID
WHERE TableA.ID = "TheID"
祝你好运!

- 迈克尔

答案 1 :(得分:0)

在不知道细节的情况下(对于外键),这种语法应该有用。

SELECT 
    CAST((CASE
            WHEN tableAValue < tableB.maxRange and tableAValue > tableB.minRange 
              THEN 1
            ELSE 
              0 
          END) AS BIT) 
FROM TableA
  INNER JOIN TableB
    ON TableA.ID = TableB.TableAID
WHERE TableA.ID = @yourID