去除字符串的SQL 查询?

xpfoo2010 2010-05-25 06:24:27
部门 食品 单价 重量
Dept:1102.雅箸厨房-午/晚餐Azur-FD -lun/Din 0130020.赣南脐橙/Orange(2010-04-29) 公斤/kg-1.000 5
Dept:1103.乐轩华厨房Le chinois-FD - S 0130020.赣南脐橙/Orange(2010-04-29) 公斤/kg-1.000 20
Dept:1201.西安57--食品成本XIAN 57-FD- GM 0130020.赣南脐橙/Orange(2010-04-29) 公斤/kg-1.000 5

有以上一个表 ,想在查询显示时过滤掉里面的其他字符串 ,只留下汉字部分,如显示的效果如下:

部门 食品 单价 重量
雅箸厨房-午/晚餐 赣南脐橙 1.000 5
乐轩华厨房 赣南脐橙 1.000 20
西安57--食品成本 赣南脐橙 1.000 5

该怎么处理呢?求教?
...全文
147 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
feilniu 2010-05-26
  • 打赏
  • 举报
回复
自己写个函数处理吧。

表结构设计不合理导致的结果。
Web设计中所说的“内容与表现分离”,在这里一样适合。
subxli 2010-05-26
  • 打赏
  • 举报
回复
replace();函数 。
wujinyuan 2010-05-26
  • 打赏
  • 举报
回复
SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON
GO

ALTER FUNCTION bbs(@aa varchar(1000))
RETURNS varchar(1000)
AS
BEGIN
declare @aaa varchar(100)
declare @i int
set @aaa=''
set @i = 1
while @i<=len(@aa)
begin
--100代表ascii码。。你找一下 字母最大的ascii是多少就可以了
if ascii(substring(@aa,@i,1))>100
set @aaa=@aaa+substring(@aa,@i,1)
set @i=@i+1
end
RETURN @aaa
END

--
/*
select ascii('你')
select substring('你好',1,1)
select dbo.bbs('dd你好')
*/

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

Vstrive 2010-05-26
  • 打赏
  • 举报
回复
来取经的,结果没取着~~
htl258_Tony 2010-05-26
  • 打赏
  • 举报
回复
写自定义函数是可以做到的。
Gambling_518 2010-05-26
  • 打赏
  • 举报
回复
如果数据规律
charindex 可以搞定
yinqi025 2010-05-26
  • 打赏
  • 举报
回复
同意楼上。。。写个函数
yjwcwrkks 2010-05-26
  • 打赏
  • 举报
回复
自己写个函数吧。
sql_lover 2010-05-25
  • 打赏
  • 举报
回复
这个没办法,自己一条条弄哦~~~~

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧