其中一种解决方式。把你的规则写成一个表ABC
COL1 COL2
0 00
1 01
. .
. .
. .
SELECT b.col2+substring(pro_no,2,len(substring)-1) FROM Products A INNER JION ABC B on upper(substring(pro_no,1,1))=b.col1
COL1 COL2
0 00
1 01
. .
. .
. .
SELECT b.col2+substring(pro_no,2,len(substring)-1) FROM Products A INNER JION ABC B on upper(substring(pro_no,1,1))=b.col1
解决方案 »
- c# winform开发,删除时,求详细指点
- sql server2000查询分析器能连接远程服务器,却在本地不能连接
- 请教一个分组select语句:两个字段,如何按照一个字段进行分组查询?谢谢!
- 这个语句该怎么写??
- 怎么样把“select * from table for xml raw ”的结果保存为一个XML文件??
- update触发器没被触发为什么启用会影响insert触发器的效率?
- 在ACCESS中创建视图,是否真得能提高读取数据的速度??
- SQL语句
- 请教:SQL的错误日志里,每天都有这样一个提示:the data portion of event 4373 from MSSALSERVER is invalid.
- 请教一个sql语句的写法
- 头疼
- 100分求助:数据库合并问题:希望合并带自动编号(由于设计问题,该编号涉及到其他表的检索)的同质数据库
create function f_ascii(@po_no varchar(200))
returns varchar(200)
as
begin
declare @t table (po_no varchar(02))
declare @s varchar(01)
set @po_no=upper(@po_no)
while len(@po_no)>0
begin
set @s=left(@po_no,1)
insert into @t select case when ascii(@s) between 65 and 90 then rtrim(ascii(@s)-54)
when ascii(@s) between 48 and 57 then '0'+@s end
set @po_no=stuff(@po_no,1,1,'')
end
declare @str varchar(200)
set @str=''
select @str=@str+po_no from @t
return @str
endgo
select po_no,dbo.f_ascii(po_no) from Products
where dbo.f_ascii(po_no) like '%0222%'
1、因為條件是 "Pro_No 的長度是變長的,不是定長的"
我不可能用subString 的方法;
2、使用函數並沒有使用 Replace 的速度快,速度差太遠了,後面的 Where 會重復的話,我隻要使用一個子查詢就可以解決了。