Instrukcja SQL przy użyciu klauzuli Where z wieloma wartościami

Translate

Mam tabelę, która ma wiele wierszy z następującymi polami:

PersonName SongName Status

Chcę użyć nazw wybranych z listy wielokrotnego wyboru, z których mogę pobrać wartości, a następnie wykonać klauzulę where, aby wyświetlała nazwy utworów, które wybrane osoby mogą odtwarzać wszystkie, dlatego stan jest kompletny.

Na przykład:

 PersonName      SongName    Status 
 Holly           Highland    Complete
 Holly           Mech        Complete 
 Ryan            Highland    Complete

Jeśli wybiorę Holly i Ryan z pola listy i naciśnę przycisk, zapytanie powinno po prostu pokazać Highland, ponieważ to jest to, co obaj wiedzą.

This question and all comments follow the "Attribution Required."

Wszystkie odpowiedzi

Translate

Spróbuj tego:

select songName from t
where personName in ('Ryan', 'Holly')
group by songName
having count(distinct personName) = 2

Liczba w posiadaniu powinna odpowiadać liczbie osób. Jeśli potrzebujesz również statusuCompleteUżyj tegowhereklauzula zamiast poprzedniej:

where personName in ('Ryan', 'Holly') and status = 'Complete'
Źródło
sll
Translate
SELECT PersonName, songName, status
FROM table
WHERE name IN ('Holly', 'Ryan')

Jeśli używasz sparametryzowanej procedury składowanej:

  1. Przekaż ciąg oddzielony przecinkami
  2. Użyj specjalnej funkcji, aby podzielić ciąg znaków oddzielonych przecinkami na zmienną wartości tabeli
  3. Posługiwać sięINNER JOIN ON t.PersonName = newTable.PersonNameużywając zmiennej tabeli, która zawiera przekazane nazwy
Źródło
Translate
Select t1.SongName
From tablename t1
left join tablename t2
 on t1.SongName = t2.SongName
    and t1.PersonName <> t2.PersonName
    and t1.Status = 'Complete' -- my assumption that this is necessary
    and t2.Status = 'Complete' -- my assumption that this is necessary
    and t1.PersonName IN ('Holly', 'Ryan')
    and t2.PersonName IN ('Holly', 'Ryan')
Źródło
Leave a Reply
You must be logged in to post a answer.
O autorze