webForumDet fria alternativet
Logga in / Bli medlem

hjälp med en selectsats

Databaser & SQL

18 svar · 649 visningar · startad av neversleep

Medlem sedan okt. 2001230 inlägg
Trådstart#1

hej

om jag har en tabell som har 3 kolumner
namn
typ1
typ2

där typ är ett bit-värde som är 1 resp 0 beroende på om det är just den typen

jag vill köra en select på den och få ut alla rader + typ som ETT värde. Alltså jag behöver få ex raden som "namn | typ" för att kunna presentera i dem dropdownlist. Ngn vänlig själ som kan hjälpa mig med det?

Medlem sedan dec. 200012 464 inlägg
#2

Det kan du väl lösa i din applikation.

Medlem sedan okt. 2001230 inlägg
#3

Möjligt men det är smidigare för mig att kunna binda sqlfrågan direkt till boxen i .net

man kan ju göra
select värde + " | " + värde
för att få en sådan formatering

Medlem sedan okt. 200179 inlägg
#4

Kör du SQL-server eller någon annan databas?
Det här funkar i alla fall i SQL-server:

SELECT STR(TYP1) + '|' + NAMN AS TEXTEN FROM TABELLEN

Medlem sedan okt. 2001230 inlägg
#5

Tack för svaret gorekex
kör sql server, dock gör den frågan ej det jag behöver

var rad har båda typfälten och en flagga satt beroende på vilken typ det är.
För att förtydliga. nedan rad ett är av typen typ1

namn typ1 typ2
_____________________
fältnamn 1 0

Medlem sedan okt. 200179 inlägg
#6

Och vad är det du vill ha ut för resultat då?
Om du gör en select mot den raden du tog som exemel vill du då ha ut:
fältnamn | 1
eller
fältnamn | 0
eller
fältnamn | 1 | 0
Eller något helt annat?

Medlem sedan okt. 2001230 inlägg
#7

jag vill göra en select på hela tabellen och få ut radvis fältnamn och typ

fältnamn | 1
fältnamn | 0
fältnamn | 0
fältnamn | 1

osv

Medlem sedan dec. 200012 464 inlägg
#8
select namn,typ1 from t
union all 
select namn,typ2 from t
order by namn
Medlem sedan okt. 200179 inlägg
#9

Ja, det har jag förstått. Det jag inte förstått är vad du vill ha för värde i "typ" i resultatet från selecten, dvs hur innehållet i typ1 och typ2 ska tolkas. Vill du ha båda värdena som ett värde eller ska bara typ1 läsas?

Kan du ge exempel på innehåll i databasen och exempel på vilket resultat du förväntar dig?
(eller kanske någon annan som förstått bättre än jag kan hjälpa till?)

Exempel på exempel

namnet   typ1   typ2         resultat
------ -----  -----        -----------------
olga       1     0         olga | 1
kalle      0     1         kalle | 0
maria      1     0         maria | 1
nisse      1     1         nisse | 1
torkel     0     0         torkel | 0

Eller?

Medlem sedan okt. 2001230 inlägg
#10

haha ibland är det svårt att formulera en fråga. Tack larsg men det där är inte vad jag vill. Gorekex exempel beskriver just det jag försöker säga

Medlem sedan okt. 2001230 inlägg
#11

någon som kan skapa en sådan sqlfråga som ger exemplet som Gorekex beskriver?

Medlem sedan dec. 20025 483 inlägg
#12
select namn + ' | ' + cast(typ1 as char(1))

?

Medlem sedan dec. 200012 464 inlägg
#13

Aha, det är bitvis eller du vill ha.

select namn, typ1 | typ2 2 from t
Medlem sedan dec. 20025 483 inlägg
#14

Men då får du ju inte det resultat Gorekex presenterar i inlägg #9, något neversleep säger sig vara ute efter.

namnet   typ1   typ2         resultat
------ -----  -----        -----------------
olga       1     0         olga | 1
[b][i]kalle      0     1         kalle | 0[/i][/b]
maria      1     0         maria | 1
nisse      1     1         nisse | 1
torkel     0     0         torkel | 0
Medlem sedan dec. 200012 464 inlägg
#15

Jag tror nog att det är ett skrivfel, annars skulle det ju räcka med att göra select på typ1.

Medlem sedan okt. 200179 inlägg
#16

Ja, jag tror neversleep måste precisera mer vad han vill ha för resultat. Jag lade med flit in "felet" (om "bitvis eller" är det som eftersöks) i min resultatlista för att tvinga fram ett med detaljerat svar... :)

Medlem sedan okt. 2001230 inlägg
#17

ok ett sista försök då... :)

Det här är vad jag vill ha ut.
Om typ1 är sann, vill jag ha ut raden + ' | jag är typ 1'
Om typ2 är sann, vill jag ha ut raden + ' | jag är typ 2'

namnet   typ1   typ2         resultat
------ -----  -----        -----------------
olga       1     0             olga | jag är typ 1
kalle      0     1              kalle | jag är typ 2
maria      1     0             maria | jag är typ 1
nisse      1     1             nisse | jag är typ 1 och typ 2
torkel     0     0

Jag vill givetvis inte ha ut 1 eller 0. Jag vill beskriva radens typ med ett godtyckligt namn så att detta syns i interfacet.

Medlem sedan dec. 200012 464 inlägg
#18
select namn + 
       case when typ1 = 1 then '| Jag är typ1' else '' end + 
       case when typ2 = 1 then '| Jag är typ2' else '' end 
from t
Medlem sedan okt. 2001230 inlägg
#19

Jajamensan! Tackar LarsG

263 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)