如表a,有个字段b
b
办公室20
党办8
人力资源部13
能不能生成以下字段
c d
办公室 20
党办 8
人力资源部 13
------解决方案--------------------
第一个问题:
----------------------------------------------------------------
-- Author :DBA_HuangZJ(发粪涂墙)
-- Date :2014-03-28 07:52:15
-- Version:
-- Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64)
-- Apr 2 2010 15:48:46
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
--
----------------------------------------------------------------
--> 测试数据[A]
if object_id('[A]') is not null drop table [A]
go
create table [A]([b] nvarchar(14))
insert [A]
select N'办公室20' union all
select N'党办8' union all
select N'人力资源部13'
--------------生成数据--------------------------
select SUBSTRING(b,1,PATINDEX('%[0-9]%',b)-1)c ,SUBSTRING(b,PATINDEX('%[0-9]%',b),LEN(b))d
from [A]
----------------结果----------------------------
/*
c d
-------------- --------------
办公室 20
党办 8
人力资源部 13
*/
------解决方案--------------------
这个问题首先要确定,当你指标库的1删除之后,A中对应的数据是要保留还是不保留,如果需要一起删除,那么做个外键级联删除就可以了。如果要保留,可能需要做一个触发器,把对应的数据改变状态,用来标识“弃用”之类的意思