首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求解:怎么通过判断,在视图中获取不同的列值

2012-04-01 
求解:如何通过判断,在视图中获取不同的列值建了一个por_inv的视图:SELECT dbo.invdtf.fitemno, dbo.invdtf

求解:如何通过判断,在视图中获取不同的列值
建了一个por_inv的视图:
SELECT dbo.invdtf.fitemno, dbo.invdtf.fwhcd, dbo.invdtf.flotno2, dbo.invdtf.flotno, 
  dbo.invdtf.fcoilno1, dbo.invdtf.fvendinvc, dbo.porecf_porlsf.mfcoilno1, 
  dbo.porecf_porlsf.fitemno AS fitemno_b
FROM dbo.invdtf RIGHT OUTER JOIN
  dbo.porecf_porlsf ON dbo.invdtf.fcoilno1 = dbo.porecf_porlsf.mfcoilno1

现在想通过判断表invdtf中fvendinvc的值是否是"以S开头并且len(fvendinvc)= 18"来取值
如果是,则取视图中的fitemno,如果不是,在取fitemno_b

[解决办法]

SQL code
SELECT CASE WHEN fvendinvc LIKE 'S%' AND len(fvendinvc)= 18 THEN fitemno ELSE fitemno_b END AS fitemnoFROM por_inv
[解决办法]
SQL code
select (case when left(dbo.invdtf.fvendinvc,1)='S' then dbo.invdtf.fitemno else dbo.porecf_porlsf.fitemno end) AS fitemno,  dbo.invdtf.fwhcd, dbo.invdtf.flotno2, dbo.invdtf.flotno,    dbo.invdtf.fcoilno1, dbo.invdtf.fvendinvc, dbo.porecf_porlsf.mfcoilno1FROM dbo.invdtf RIGHT OUTER JOIN  dbo.porecf_porlsf ON dbo.invdtf.fcoilno1 = dbo.porecf_porlsf.mfcoilno1
[解决办法]
SQL code
CASE WHEN fvendinvc LIKE 'S%' AND len(fvendinvc)= 18 THEN fitemno ELSE fitemno_b END AS fitemno 

热点排行