有时从数据库中检索出来的数据,需要进行格式化,例如性别在数据库中存储 1 表示男性, 0 表示女性,在显示时要将 1 替换成男, 0 替换成女,这里方法是多样的,可以在服务器端进行,也可以在客户端进行。

在服务器端利用 sql 查询语句,下面有两种方法。

方法一:利用 case

sql 数据检索后的替换格式化declare @tb table(name char(5),sex int)
sql 数据检索后的替换格式化
insert @tb select 'Andy',1 union all
sql 数据检索后的替换格式化 
select 'Jim',1 union all
sql 数据检索后的替换格式化 
select 'Lily',0 union all
sql 数据检索后的替换格式化 
select 'Linda',null
sql 数据检索后的替换格式化
sql 数据检索后的替换格式化
select 
sql 数据检索后的替换格式化 name,
sql 数据检索后的替换格式化 sex
=CASE 
sql 数据检索后的替换格式化  
WHEN sex=1 THEN '男  '
sql 数据检索后的替换格式化  
when sex= 0 then ''
sql 数据检索后的替换格式化 
end
sql 数据检索后的替换格式化
from @tb
sql 数据检索后的替换格式化

结果:
name  sex
----- ----
Andy  男  
Jim   男  
Lily  女  
Linda NULL


方法二 利用 join

sql 数据检索后的替换格式化declare @tb table(name char(5),sex int)
sql 数据检索后的替换格式化
insert @tb select 'Andy',1 union all
sql 数据检索后的替换格式化 
select 'Jim',1 union all
sql 数据检索后的替换格式化 
select 'Lily',0 union all
sql 数据检索后的替换格式化 
select 'Linda',null
sql 数据检索后的替换格式化
sql 数据检索后的替换格式化
select t.name,t.sex,s.SexTitle 
sql 数据检索后的替换格式化
from @tb t left join 
sql 数据检索后的替换格式化 (
select 1 as SexID, '' as SexTitle union all select 0'') s
sql 数据检索后的替换格式化
on t.sex=s.SexID
sql 数据检索后的替换格式化


结果:
name  sex         SexTitle
----- ----------- --------
Andy            1 男      
Jim             1 男      
Lily            0 女      
Linda        NULL NULL   

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-04-27
  • 2021-09-06
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-11-29
  • 2022-12-23
  • 2021-10-14
  • 2022-12-23
  • 2022-01-03
  • 2021-05-19
  • 2022-02-09
相关资源
相似解决方案