根据汉字声母,在表中找相关记录。比如输入"zgyh",就能找到所有“中国银行”的记录zz

原创 2004年11月02日 19:46:00
http://dev.csdn.net/develop/article/47/47155.shtm 根据汉字声母,要在表中找相关记录,怎么实现?比如输入"zgyh",就能找到所有“中国银行”的记录。 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_GetPy]') and xtype in (N'FN', N'IF', N'TF')) drop function [dbo].[f_GetPy] GO --创建取拼音函数 create function f_GetPy(@Str nvarchar(400)) returns nvarchar(4000) as begin declare @strlen int,@re nvarchar(4000) declare @t table(chr nchar(1) collate Chinese_PRC_CI_AS,letter nchar(1)) insert @t select '吖','A' union all select '八','B' union all select '嚓','C' union all select '咑','D' union all select '妸','E' union all select '发','F' union all select '旮','G' union all select '铪','H' union all select '丌','J' union all select '咔','K' union all select '垃','L' union all select '嘸','M' union all select '拏','N' union all select '噢','O' union all select '妑','P' union all select '七','Q' union all select '呥','R' union all select '仨','S' union all select '他','T' union all select '屲','W' union all select '夕','X' union all select '丫','Y' union all select '帀','Z' select @strlen=len(@str),@re='' while @strlen>0 begin select top 1 @re=letter+@re,@strlen=@strlen-1 from @t a where chr<=substring(@str,@strlen,1) order by chr desc if @@rowcount=0 select @re=substring(@str,@strlen,1)+@re,@strlen=@strlen-1 end return(@re) end go --测试 select dbo.f_GetPy('东莞市') as 东莞市,dbo.f_GetPy('ab中c国人') as 中国人 --以后查询的时候,就可以调用上面的函数来实现汉字模糊查询 select * from 表 where dbo.f_getpy(字段)='zgyh'

根据汉字声母,在表中找相关记录。比如输入"zgyh",就能找到所有“中国银行”的记录。

根据汉字声母,要在表中找相关记录,怎么实现?比如输入"zgyh",就能找到所有“中国银行”的记录。if exists (select * from dbo.sysobjects where id = ...
  • swanky
  • swanky
  • 2004年11月01日 22:10
  • 1102

根据汉字声母,要在表中找相关记录,怎么实现?比如输入"zgyh",就能找到所有“中国银行”的记录。

根据汉字声母,要在表中找相关记录,怎么实现?比如输入"zgyh",就能找到所有“中国银行”的记录。if exists (select * from dbo.sysobjects where id = ...
  • lang_csdn
  • lang_csdn
  • 2004年11月01日 19:56
  • 1253

根据汉字声母,在表中找相关记录。比如输入&quot;zgyh&quot;,就能找到所有“中国银行”的记录。

  • zgqtxwd
  • zgqtxwd
  • 2008年04月27日 00:06
  • 376

根据汉字声母,在表中找相关记录

根据汉字声母,要在表中找相关记录,怎么实现?比如输入"zgyh",就能找到所有“中国银行”的记录。   if   exists   (select   *   from   dbo.sysobject...
  • zhanglei5415
  • zhanglei5415
  • 2007年02月06日 13:04
  • 876

Access数据库中“所有记录中均未找到搜索关键字”的解决方法

删除Access数据库表中记录时,弹出“所有记录中均未找到搜索关键字”,无法删除该记录。解决方法:1、打开数据库中出错表的‘设计视图’——>‘索引’,删除该索引。2、重新打开该表即可正常删除该记录。 ...
  • huangyinkuck
  • huangyinkuck
  • 2011年02月15日 11:19
  • 5461

所有记录中均未找到搜索关键字的解决方法!

今天在处理后台一个更新句子时出现一个错误:"所有记录中均未找到搜索关键字" 去网上查了查,说数据库损坏,然后就把本地的传上去一份,然后修改一次成功了,可是在修改一次又不行了!找了好几个答案都说是数据库...
  • hezudao25
  • hezudao25
  • 2012年06月27日 16:13
  • 7627

在access数据库中,据记录ID得到其上一条记录及下一条记录的SQL

//在数据库设计中,一条新闻通常是一条记录里的一个字段,//我们除了要根据新闻的ID得到详细内容这外,还要根据这个ID//得到其上一篇和下一篇的记录(此ID限自动增长),//那么这样的SQL语句,可以...
  • qingyun0719
  • qingyun0719
  • 2009年12月04日 08:43
  • 1876

利用MySQL查询所有数据库表以及表中的记录数

1、问题背景     在一个数据库中,查看所有数据库表;为了测试需要清空数据库所有表,但是不能清空用户表、角色表、权限表和角色权限表。2、命令实现USE information_schema; SE...
  • you23hai45
  • you23hai45
  • 2017年03月02日 22:36
  • 1842

SQL删除一个表中所有记录命令

 TRUNCATE TABLE删除表中的所有行,而不记录单个行删除操作。 语法TRUNCATE TABLE name参数name是要截断的表的名称或要删除其全部行的表的名称。注释TRUNCATE TA...
  • gloomyboyo
  • gloomyboyo
  • 2008年12月21日 14:17
  • 14014

查询SQL SERVER所有表记录数和体积大小

declare aaa  cursor forselect  table_name from information_schema.tables WHERE  TABLE_type=BASE TABL...
  • szliszt
  • szliszt
  • 2008年05月21日 21:13
  • 2931
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:根据汉字声母,在表中找相关记录。比如输入"zgyh",就能找到所有“中国银行”的记录zz
举报原因:
原因补充:

(最多只允许输入30个字)