Создать представление в SQL с объединенным столбцом> Затем используйте оператор Case для воздействия на значения - PullRequest
0 голосов
/ 01 апреля 2020

Я создал представление с объединенным столбцом с именем DisplayName , используя приведенный ниже код.

create view DisplayNames as 
    select FirstName + ' ' + LastName DisplayName,
           *
    from Table1

Есть ли способ изменить указанные c DisplayName значениями с помощью оператора case (или лучшего метода)

Что-то вроде:

случай, когда DisplayName = 'Robert Jones' THEN 'Bob Jones' когда DisplayName = 'Thomas Simms' THEN 'Tommy Simms'

или

когда FirstName = 'Robert' AND LastName = ' Джонс "ТОГДА" Боб Джонс "

Ответы [ 2 ]

1 голос
/ 01 апреля 2020

Это то, что вы хотите?

create view DisplayNames as 
select
    case FirstName 
        when 'Robert' then 'Bob'
        when 'Thomas' then 'Tommy'
    end 
    + ' ' 
    + LastName DisplayName,
    t.*
from Table1 t

При этом транскодификация применяется к имени отдельно, независимо от фамилии.

1 голос
/ 01 апреля 2020

На SQL сервере я бы предложил APPLY:

create view DisplayNames as 
    select (case when v.DisplayName = 'Bob Jones' then'Thomas Simms'
                 else v.DisplayName
            end) as DsiplayName,
           t1.*
    from Table1 t1 cross apply
         (values (FirstName + ' ' + LastName)) v(DisplayName);

Это позволяет определить столбец в предложении FROM. Тогда вам не нужно выяснять, как удалить старое значение - как было бы необходимо при использовании CTE или подзапроса.

...