通过前三位判断出另外一个字段的数据,怎么办
通过前三位判断出另外一个字段的数据,怎么处理?
TAB1
BH GD
3W50254 5.1
3W50253 5.1
3WS122 5.1
3WS112 5.1
3WP903 9.3
3WP5618 9.3
3WP5616 9.3
说明:当BH的前三位有W 或者 WS 时,GD =5.1,
当BH的前三位含有WP,GD=9.3
请大家帮忙,怎么处理呢?
------解决思路----------------------
SELECT CASE RIGHT(LEFT(BH,3),2) WHEN 'WS' THEN '5.1' WHEN 'WP' THEN '9.3' END AS GD FROM TB1
------解决思路----------------------
------解决思路----------------------
select BH,case when charindex('WH',LEFT(bh,3))>0 then 9.3
when CHARINDEX('WS',LEFT(bh,3))>0 then 5.1
when CHARINDEX('W',LEFT(bh,3))>0 then 5.1 end as GD from tab1
TAB1
BH GD
3W50254 5.1
3W50253 5.1
3WS122 5.1
3WS112 5.1
3WP903 9.3
3WP5618 9.3
3WP5616 9.3
说明:当BH的前三位有W 或者 WS 时,GD =5.1,
当BH的前三位含有WP,GD=9.3
请大家帮忙,怎么处理呢?
------解决思路----------------------
SELECT CASE RIGHT(LEFT(BH,3),2) WHEN 'WS' THEN '5.1' WHEN 'WP' THEN '9.3' END AS GD FROM TB1
------解决思路----------------------
--查询方法
SELECT BH
,CASE WHEN LEFT(BH,3)LIKE '%WP%' OR LEFT(BH,3)LIKE '%GD%' THEN 9.3
WHEN LEFT(BH,3)LIKE '%WS%' OR LEFT(BH,3)LIKE '%W%' THEN 5.1
END GD
FROM TAB1
--更新方法
UPDATE TAB1
SET GD=CASE WHEN LEFT(BH,3)LIKE '%WP%' OR LEFT(BH,3)LIKE '%GD%' THEN 9.3
WHEN LEFT(BH,3)LIKE '%WS%' OR LEFT(BH,3)LIKE '%W%' THEN 5.1
END
------解决思路----------------------
select BH,case when charindex('WH',LEFT(bh,3))>0 then 9.3
when CHARINDEX('WS',LEFT(bh,3))>0 then 5.1
when CHARINDEX('W',LEFT(bh,3))>0 then 5.1 end as GD from tab1