2014-10-08 2 views
0

Я пытаюсь что-то сделать с SQL и задавался вопросом, возможно ли это. У меня есть таблица, которая выглядит, как этотSQL IF-ELSE, если Statement - или Case

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 для каждого. В конечном итоге я хочу, чтобы иметь возможность искать такие данные.

ЕСЛИ Тип = А> Показать 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

+0

Эй, я не слишком уверен, чего ты хочешь. вы можете показать таблицу результатов? то я смогу вам помочь :) – Alex

+0

Позвольте мне немного перефразировать его, я вытягиваю по одной колонке за раз в стороннем программном обеспечении, в котором пользователь выбирает одно из значений, а затем на основе этих выбранных значений, которые я вытягиваю в другом столбце, зависящем от ранее выбранных значений пользователем. Например, пользователь выбирает A, тогда они будут видеть 1,1,2, затем, если выбрано 1, они видят описание и MISC. Надеюсь, что это намного яснее. @sgeddes –

ответ

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