webForumDet fria alternativet

hjälp med en selectsats

18 svar · 647 visningar · startad av neversleep

neversleepMedlem sedan okt. 2001230 inlägg
#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?

LarsGMedlem sedan dec. 200012 464 inlägg
#2

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

neversleepMedlem 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

GorekexMedlem 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

neversleepMedlem 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

GorekexMedlem 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?

neversleepMedlem 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

LarsGMedlem sedan dec. 200012 464 inlägg
#8
select namn,typ1 from t
union all 
select namn,typ2 from t
order by namn
GorekexMedlem 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?

neversleepMedlem 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

neversleepMedlem sedan okt. 2001230 inlägg
#11

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

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

?

LarsGMedlem sedan dec. 200012 464 inlägg
#13

Aha, det är bitvis eller du vill ha.

select namn, typ1 | typ2 2 from t
Peter SMedlem 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
LarsGMedlem 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.

GorekexMedlem 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... :)

neversleepMedlem 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.

LarsGMedlem 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
neversleepMedlem sedan okt. 2001230 inlägg
#19

Jajamensan! Tackar LarsG

133 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)