CASE SOE.ObsType
WHEN 0 THEN '0: Employee'
WHEN 1 THEN '1: Position'
WHEN 2 THEN '2: Department'
END AS ObsName
Хотя, это лучше как справочная таблица.Что происходит, когда вы хотите, например, 3 = "3: Division"?Как куски кода вам нужно будет изменить?Вы не загромождаете базу данных поисковыми таблицами, вы нормализуете.
Если вы считаете, что это беспорядок, то используйте префикс для обозначения таблицы поиска, а не "реальной" таблицы данных.*
Если он действительно является статическим, то это может быть вычисляемый столбец в таблице SOE, поэтому CASE сохраняется один раз без таблицы поиска.Изменить, пример:
Может быть в конце или в середине.Кроме того, вы должны разделить условия JOIN и WHERE (фильтр) для ясности
SELECT
SOE.SafetyObsID,
SOE.DateAdded,
SOE.ObsType,
CASE SOE.ObsType
WHEN 0 THEN '0: Employee'
WHEN 1 THEN '1: Position'
WHEN 2 THEN '2: Department'
END AS ObsName,
SOE.DataID,
SOE.JobID,
Jobs.JobName
FROM
SafetyObs.SOEntry SOE
INNER JOIN
dbo.JT_Jobs Jobs ON SOE.JobID = Jobs.JobId
WHERE
Jobs.CompanyId = @CompanyID
или
SELECT
SOE.SafetyObsID,
SOE.DateAdded,
SOE.ObsType,
SOE.DataID,
SOE.JobID,
Jobs.JobName,
CASE SOE.ObsType
WHEN 0 THEN '0: Employee'
WHEN 1 THEN '1: Position'
WHEN 2 THEN '2: Department'
END AS ObsName
FROM
...
WHERE
...