SQL Запрос к серверу для замены текста в столбце - PullRequest
0 голосов
/ 09 января 2020

У меня есть несколько таблиц в моей базе данных.

Первый - это Employees, который состоит из EmployeedId (PK), Name, Email, ContactNo, password, salary и employeestatus (FOREIGN KEY REFERENCES Status(id))

Вторая таблица - Address со столбцами

AddressId (PK), Id (FOREIGN KEY REFERENCES Employees(EmployeeId), 
Addressstatus (FOREIGN KEY REFERENCES CheckListAction(id)), EmployeeAddress

CheckListAction имеет id (PK) и value ( ДА, НЕТ, Н / Д)

Status имеет id (pk) и value (A для активного, I для неактивного, W для ожидания)

Теперь у меня есть создал сетку, которая показывает данные из таблиц Employees и Address. Этот запрос используется:

SELECT
    e.name, e.email, e.contactno, 
    a.employeeaddress, e.salary, e.empployeestatus
FROM 
    Employees e
LEFT OUTER JOIN 
    Address a
WHERE
    a.addressstatus = 1

Теперь моя сетка показывает сотрудниковestatus как A, I или W. Пользователь не знает, что означает A, I или W, поэтому я хочу показать полное имя пользователю это АКТИВНО, НЕАКТИВНО ИЛИ ЖДЕТ. Так как мне изменить приведенный выше запрос, который показывает мне полное имя вместо букв.

1 Ответ

1 голос
/ 09 января 2020

Вы должны немного почитать CASE, как предложила Джин. Вот страница Microsoft: https://docs.microsoft.com/en-us/sql/t-sql/language-elements/case-transact-sql?view=sql-server-ver15

Вот мое быстрое решение:

SELECT
    e.name, e.email, e.contactno, 
    a.employeeaddress, e.salary,
    CASE e.empployeestatus
    WHEN 'A' THEN 'ACTIVE'
    WHEN 'I' THEN 'INACTIVE'
    WHEN 'W' THEN 'WAITING'
    END
FROM 
    Employees e
LEFT OUTER JOIN 
    Address a
WHERE
    a.addressstatus = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...