[MSSQL] Warunkowo kilka wartości w kolumnie

0

Cześć chodzi mi o coś takiego, że w kolumnie mogę mieć różne znaczniki w zależności od pozostałych pól. Znaczników może być kilka, może być jeden, tzn. upraszczając załóżmy, że mam tabelę:

f1   |  f2  |  f3
===================
0    |  1   |  1
1    |  0   |  0
0    |  0   |  1

a chcę uzyskać coś takiego(kolumna status jest kolumną znakową

f1   |  f2  |  f3   | Status |
===============================
0    |  1   |  1    |   f2+f3 |
1    |  0   |  0    |   f1    |
0    |  0   |  1    |   f3    |

Czy da się to jakoś zrobić w mądry sposób?
W mądry tzn. nie chciałbym używać w case każdego możliwego przypadku, tylko chciałbym spawdzać każdy przypadek osobno, czyli coś w deseń:

-- pseudokod
  case f1 = 1 then status = status + 'f1' end
  case f2 = 1 then status = status + '+f2' end
-- itd

Oczywiście wszystko w jednym select.
Jest to w ogóle możliwe?

0
SUBSTRING(
CASE f1 WHEN 1 THEN '+f1' ELSE '' END +
CASE f2 WHEN 1 THEN '+f2' ELSE '' END +
CASE f3 WHEN 1 THEN '+f3' ELSE '' END,
2,8)
0
hes napisał(a)
SUBSTRING(
CASE f1 WHEN 1 THEN '+f1' ELSE '' END +
CASE f2 WHEN 1 THEN '+f2' ELSE '' END +
CASE f3 WHEN 1 THEN '+f3' ELSE '' END,
2,8)

OK, świetnie działa, dzięki!

1 użytkowników online, w tym zalogowanych: 0, gości: 1