In Sql, wie kann man nur einen Wert ändern mit Hilfe einer case-Anweisung?
Frage:
Was ist der beste Weg, um den Wert zu ändern in der group_id ALS RoleId Spalte, so dass, wenn group_id ALS RoleId = 3 der Wert wird geändert, um die entsprechenden Wert-5?
Hintergrund:
In der folgenden Abfrage, ich bin den Vergleich zwei Tabellen aus verschiedenen Datenbanken mit keine wirklichen eindeutigen Schlüssel. Ich hatte zu kombinieren, first_name und last_name Spalten auf einer alias-Tabelle und vergleichen Sie diese dann mit den anderen Tabellen Name-Spalte. Es liefert die Ergebnisse, die ich will, aber Sie haben zwei Spalten, die im Zusammenhang mit der RoleId Spalte und die Spalte group_id. Sie haben die entsprechenden Werte, so zum Beispiel RoleId =5 ist das gleiche wie group_id =3, aber RoleId = 4 ist die gleiche wie group_id = 4.
Select-Anweisung:
SELECT
users.UserName,
users.phone,
users.email,
users.status,
users.group_id AS RoleId
FROM
(SELECT
Table1.dbo.users.first_name +' '+ Table1.dbo.users.last_name AS UserName,
Table1.dbo.users.phone,
Table1.dbo.users.email,
Table1.dbo.users.status,
Table1.dbo.users.group_id
FROM
Table1.dbo.users
) AS users
LEFT JOIN
Table2.dbo.UsersInfo ON
users.UserName = Table2.dbo.UsersInfo.Name
WHERE
Table2.dbo.UsersInfo.Name IS NULL
- Danke für das Bearbeiten, Sie schlagen mich zu es
Du musst angemeldet sein, um einen Kommentar abzugeben.
So etwas sollte es tun, wenn Sie wollen einfach übersetzen, Gruppen-id 3 an den Rollen-id 5 und halten Sie den rest unverändert;