У меня есть таблица #A
, например:
id | main_value | value1 | Value2 | value3 | value4
------------------------------------------------------------
1 | VALUE1 | 1.00 | 0.00 | 0.00 | 2.00
2 | VALUE2 | 0.00 | 4.00 | 0.00 | 0.00
3 | VALUE4 | 0.00 | 0.00 | 1.00 | 5.00
4 | VALUE3 | 1.00 | 0.00 | 2.00 | 0.00
Каждый раз, когда в таблицу вставляются только два значения (только два столбца из значения1, значения2, значения3, значения4)
Я хочу выбратьтолько два значения основаны на основном значении.
Если мое основное значение равно value1
, тогда значение столбца 1st
равно values1
, а значением столбца 2nd
является другой столбец, который не равен нулю.
Если мое основное значение value2
, тогда значение столбца 1st
равно values2
, а значение столбца 2nd
- это другой столбец, который не равен нулю.
Пример данных:
CREATE TABLE #A (id int,
main_value Nvarchar(MAX),
value1 DECIMAL(15,2),
Value2 DECIMAL(15,2),
value3 DECIMAL(15,2),
value4 DECIMAL(15,2))
INSERT INTO #A VALUES(1, 'VALUE1',1,0,0,2 )
INSERT INTO #A VALUES(2, 'VALUE2',0,4,0,0 )
INSERT INTO #A VALUES(3, 'VALUE4',0,0,1,5 )
INSERT INTO #A VALUES(4, 'VALUE3',1,0,2,0 )
SELECT * FROM #A
Ожидаемые результаты:
id | main_value | 1st | 2nd |
--------------------------------------
1 | VALUE1 | 1.00 | 2.00 |
2 | VALUE2 | 4.00 | 1.00 |
3 | VALUE4 | 5.00 | 1.00 |
4 | VALUE3 | 2.00 | 1.00 |