在SQL中创建具有连接列的视图>;然后使用Case语句来影响值
我使用下面的代码创建了一个包含名为DisplayName的连接列的视图在SQL中创建具有连接列的视图>;然后使用Case语句来影响值,sql,sql-server,tsql,select,Sql,Sql Server,Tsql,Select,我使用下面的代码创建了一个包含名为DisplayName的连接列的视图 create view DisplayNames as select FirstName + ' ' + LastName DisplayName, * from Table1 是否有方法使用case语句(或更好的方法)更改特定的DisplayName值 比如: 案例 当DisplayName='Robert Jones'然后是'Bob Jones' 当DisplayName='Th
create view DisplayNames as
select FirstName + ' ' + LastName DisplayName,
*
from Table1
是否有方法使用case语句(或更好的方法)更改特定的DisplayName值
比如:
案例
当DisplayName='Robert Jones'然后是'Bob Jones'
当DisplayName='Thomas Simms'然后是'Tommy Simms'
或
在SQL Server中,当FirstName='Robert'和LastName='Jones'然后是'Bob Jones'时,我建议应用
:
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或子查询是必要的。在SQL Server中,我建议应用
:
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或子查询是必要的。这就是您想要的吗
create view DisplayNames as
select
case FirstName
when 'Robert' then 'Bob'
when 'Thomas' then 'Tommy'
end
+ ' '
+ LastName DisplayName,
t.*
from Table1 t
这会将代码转换分别应用于名字,而不考虑姓氏。这是您想要的吗
create view DisplayNames as
select
case FirstName
when 'Robert' then 'Bob'
when 'Thomas' then 'Tommy'
end
+ ' '
+ LastName DisplayName,
t.*
from Table1 t
这会将代码转换分别应用于名字,而不考虑姓氏。使用您正在使用的数据库标记您的问题。使用您正在使用的数据库标记您的问题。