表中 某个字段中怎么查找特定格式的字符并删除
表中 某个字段中如何查找特定格式的字符并删除?
比如表A,中字段为question
值为:“Lb4A3136 阻抗继电器中接入第三相电压。”
要的结果是把前面的编号“Lb4A3136” 去掉,但是每题的编号不一样。
但是格式是这样的:
第一个和第二个是字母,第三个是数字,第四个是字母,第五到第八个也是数字。
请问如果写这样一个sql语句来删除这些多余的数据??
急等。
------解决方案--------------------
你这个的思路是用charindex找到汉字 然后left
------解决方案--------------------
比如表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 --------------------------------