日期:2014-05-18  浏览次数:20548 次

表中 某个字段中如何查找特定格式的字符并删除?
比如表A,中字段为question

值为:“Lb4A3136 阻抗继电器中接入第三相电压。”

要的结果是把前面的编号“Lb4A3136” 去掉,但是每题的编号不一样。

但是格式是这样的:
第一个和第二个是字母,第三个是数字,第四个是字母,第五到第八个也是数字。

请问如果写这样一个sql语句来删除这些多余的数据??

急等。

------解决方案--------------------
你这个的思路是用charindex找到汉字 然后left
------解决方案--------------------
SQL code
declare @s varchar(100)
set @s='Lb4A3136阻抗继电器中接入第三相电压'

select right(@s,len(@s)-PATINDEX('%[吖-座]%',@S)+1)

/*----------------------------------------------------------------
阻抗继电器中接入第三相电压
*/

------解决方案--------------------
去空格的索引 charindex(字段,' '),截取后面的
------解决方案--------------------
SQL code
--------------------------------
--提取中文
IF OBJECT_ID('DBO.CHINA_STR') IS NOT NULL
DROP FUNCTION DBO.CHINA_STR
GO
CREATE FUNCTION DBO.CHINA_STR(@S NVARCHAR(100))
RETURNS VARCHAR(100)
AS
BEGIN
WHILE PATINDEX('%[^吖-座]%',@S) > 0
SET @S = STUFF(@S,PATINDEX('%[^吖-座]%',@S),1,N'')
RETURN @S
END
GO
SELECT DBO.CHINA_STR(你的列名) FROM 你的表
GO
--------------------------------