SQL IF-ELSE if Statement - 或Case

时间:2014-10-08 23:56:22

标签: sql sql-server tsql if-statement datatable

我正在尝试用SQL做一些事情并且想知道它是否可行。 我有一个看起来像这样的电子表格

 Type   Qnty     description        MISCNUMB 
 A      1         One Is One           abc    
 A      1        One is bla bla        ASD
 A      2        asdasdsa              23213
 B      12       Two One               321
 B      1111                     
 C      122312   DRE                   321

我可能会在某些列中重复使用值。

当我从表中选择类型时,有没有办法不获取所有重复的值,每个实例只有一个?

我可以使用If- ELIF来比较表中的列并编写查询吗?

另一件事是,我的数据太大了,以至于我无法通过数据来获取每个数据的case语句。我最终希望能够找到这样的数据。

IF Type = A>显示关于它的数量> (一旦用户选择那些值)>然后显示关于所选qnty的描述>显示misc号码

SELECT 
    Qnty 
FROM 
    TABLE_1 
WHERE 
    TYPE = 'A' 
    (I should technically get 1,1,2 right?)
    Pseudo code = IF Qnty= '1' FROM TABLE_1 
       then show only descriptions and MISC numb for those values, 
       else show rest) 

1 个答案:

答案 0 :(得分:0)

第二次尝试理解它。

DECLARE @TABLE_1 TABLE (Type NVARCHAR, Qnty INT, Description NVARCHAR(100), MISCNUMB NVARCHAR(100))
DECLARE @UserChoosesOption INT

INSERT INTO @TABLE_1 
VALUES
     ('A',1,'random text', 'aaa')
    ,('A',1,'random text1', 'aaa1')
    ,('A',2,'random text2', 'aaa2')
    ,('B',12,'random text3', 'aaa3')
    ,('B',1111,'random text4', 'aaa4')
    ,('C',122312,'random text5', 'aaa5')

SELECT 
    Qnty
FROM @TABLE_1 WHERE Type = 'B'

SELECT @UserChoosesOption = 12

SELECT 
    Description, 
    MISCNUMB 
FROM @TABLE_1
WHERE Qnty = @UserChoosesOption