一个表中有这样的字段: CODE
--------
SA
SAB
CA
CB
S
CD
现在有一个字符串‘SABC’,要得到所以在这个串中右边出现的 code 。如何写sql得到:SA
SAB
S
--------
SA
SAB
CA
CB
S
CD
现在有一个字符串‘SABC’,要得到所以在这个串中右边出现的 code 。如何写sql得到:SA
SAB
S
解决方案 »
- case语句如果情况没列举出来,怎么做
- 怎么样动态创建窗体
- Delphi自动关闭
- 读取ini问题:能写入数据、能读出数据就是不按照自己的方式执行,这个ini怎么写?不用ini,用别的方法实现也一样给分,大哥大姐们帮忙啊!
- sql词句中如何按年度统计,是用什么函数?忘记了,请高手指点一下
- 急救!谁又Windows XP的注册码,小弟安装Delphi的时候挂了……
- 请问怎样将三个变量用SQL语句分别存入指定*.DB表的字段中?
- CSDN如何进行主题搜索?
- 如何控制Delphi的AutoCommit行为?
- 各位大虾:小妹我想开发一个数据库应用程序,能否给我一些建议?(比如:采用什么数据库类型、那种数据库查询速度快、可扩展性好?等等) 谢谢大虾!
- 怎样把文件dos.doc保存到sql server数据库中,然后再从数据库中读取文件,保存到硬盘的其他目录中?(在线)
- 求助高手用delphi6实现点对点文件传输
like '*S*'
*---------多个字符匹配
?---------单个字符匹配
--调用 exec mytest 'abcd',test
create procedure Mytest
@str char(10),
@table char(10)
as
declare @substr char(10),
@i integer,
@sql nvarchar(1000)--set @str='abcd'
set @sql='select code from '+@table+' where (len(code)=1 and code like left('+''''+@str+''',1))'
set @i=2
while @i<= len(@str)
begin
set @sql=@sql+' or (len(code)='+cast(@i as char(2))+' and code like left('+''''+@str+''','+cast(@i as char(2))+'))'
set @i=@i+1
end
exec( @sql)sqlserver中测试通过
你最好把你的字段code改为别的名字