求SQL语句,有点难度。(50分)

  • 主题发起人 主题发起人 国色天香
  • 开始时间 开始时间

国色天香

Unregistered / Unconfirmed
GUEST, unregistred user!
SQL 2000 数据库。<br><br>比如 :有 两个表,姓名 和 姓,分别由字段 姓名 和 姓 。<br><br>我想要的 SQL 语句是 ;<br><br>select &nbsp;姓名.姓名 from 姓名,姓 where 姓名.姓名 like 姓.姓 %<br><br>不知道能看懂不?我要把 姓名 表格中 姓在 姓 这个表格中的所有记录都查询出来<br><br>这个 SQL语句应该怎么写??
 
把表 姓 放入 数据集cdsquery 中<br>定义一个变量<br>sName: string;<br>cdsQuery.First;<br>while not cdsQuery.EOF do<br>begin<br>sName := cdsQuery.FieldByName('姓').asstring;<br>Ssql := 'select distinct 姓名.姓名 from 姓名,姓 where 姓名.姓名 like ' + ' QuotedStr(sName + %);<br>......
 
select 姓名.姓名 from 姓名 where substr(姓名.姓名,1,1) in (select 姓.姓 from 姓)
 
以上应该都能得到正确结果
 
国色天香!这个名字是个大美女吧!呵呵!
 
简单得一塌糊涂,还说有点难度。
 
select 姓名.姓名 from 姓名 where left(姓名.姓名,1) = 姓.姓
 
to:duxing 如果姓中有几千条记录,呵呵 ,这样做是不是效率太低了。<br>to:hanyuhen1 ,我只是举个例子,实际上我需要的是 姓名字段中只要有 姓 的字的记录都查询出来,不管这个字的位置如何。而且姓还有可能有复姓,怎么解决<br><br>要达到的效果是:<br>select &nbsp;姓名.姓名 from 姓名,姓 where 姓名.姓名 like % 姓.姓 %
 
贴点数据出来最好。不晓得是不是这个意思比如<br>姓名表 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;姓表<br>张三 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;张<br>张四 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;王<br>张五<br>王三<br>王四<br>李三<br><br>结果是 <br>张三 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>张四 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>张五<br>王三<br>王四<br>&nbsp; 是吗?<br>语句如下:select 姓名 from 姓名 where left(姓名,1) in (select 姓 from 姓)
 
to: 国色天香 你那样就可以呀<br><br>select &nbsp;姓名.姓名 from 姓名,姓 where 姓名.姓名 like '%' + 姓.姓 + '%'(SQL Server数据库) &nbsp;<br>Oracle数据库将'+'改成'||'
 
lzh1983 正解。
 
后退
顶部