soundex.sql.in
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:1k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. --------------- soundex.sql:
  2. CREATE FUNCTION text_soundex(text) RETURNS text
  3.    AS '_OBJWD_/soundex.so' LANGUAGE 'c';
  4. SELECT text_soundex('hello world!');
  5. CREATE TABLE s (nm text)g
  6. insert into s values ('john')g
  7. insert into s values ('joan')g
  8. insert into s values ('wobbly')g
  9. select * from s
  10. where text_soundex(nm) = text_soundex('john')g
  11. select nm from s a, s b
  12. where text_soundex(a.nm) = text_soundex(b.nm)
  13. and a.oid <> b.oidg
  14. CREATE FUNCTION text_sx_eq(text, text) RETURNS bool AS
  15. 'select text_soundex($1) = text_soundex($2)'
  16. LANGUAGE 'sql'g
  17. CREATE FUNCTION text_sx_lt(text,text) RETURNS bool AS
  18. 'select text_soundex($1) < text_soundex($2)'
  19. LANGUAGE 'sql'g
  20. CREATE FUNCTION text_sx_gt(text,text) RETURNS bool AS
  21. 'select text_soundex($1) > text_soundex($2)'
  22. LANGUAGE 'sql';
  23. CREATE FUNCTION text_sx_le(text,text) RETURNS bool AS
  24. 'select text_soundex($1) <= text_soundex($2)'
  25. LANGUAGE 'sql';
  26. CREATE FUNCTION text_sx_ge(text,text) RETURNS bool AS
  27. 'select text_soundex($1) >= text_soundex($2)'
  28. LANGUAGE 'sql';
  29. CREATE FUNCTION text_sx_ne(text,text) RETURNS bool AS
  30. 'select text_soundex($1) <> text_soundex($2)'
  31. LANGUAGE 'sql';
  32. DROP OPERATOR #= (text,text)g
  33. CREATE OPERATOR #= (leftarg=text, rightarg=text, procedure=text_sx_eq,
  34. commutator=text_sx_eq)g
  35. SELECT *
  36. FROM s
  37. WHERE text_sx_eq(nm,'john')g
  38. SELECT *
  39. from s
  40. where s.nm #= 'john';