2014-10-08 70 views
0

我正在嘗試用SQL來做一些事情,並想知道是否可能。 我有一個電子表格,看起來像這樣SQL IF-否則如果聲明 - 或者案例

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來比較表中的列,並編寫查詢嗎?

另一件事是,我的數據是如此之大,我不能通過數據有每個案件陳述。我最終希望能夠找到像這樣的數據。

IF相對於它類型= A>顯示qnty>(一旦用戶選擇這些值)>然後顯示描述相對於所選qnty>節目雜項數

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) 
+0

您的樣品數據有什麼樣的結果?你不只是在尋找'SELECT DISTINCT Qnty'是你嗎? – sgeddes 2014-10-09 00:02:08

+0

嘿,我不太清楚你想要什麼。你能顯示一個結果表嗎?那麼我將能夠幫助你:) – Alex 2014-10-09 00:02:19

+0

讓我再說一點,我在第三方軟件中一次拉一列,用戶在其中選擇一個值,然後基於這些選定的值,我拉在依賴於用戶先前選擇的值的另一列中。例如,用戶選擇A,然後他們會看到1,1,2,那麼如果選擇1,他們會看到描述和MISC。我希望它更清楚。 @sgeddes – 2014-10-09 00:11:48

回答

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