求sql语句 - cAkk(300分)

  • 主题发起人 主题发起人 cAkk
  • 开始时间 开始时间
qian: 没有空格的;

这样吧,我给一些例子数据,注意:
1.字段F_TEXT是Text类型的:
2.F_STR前面没有空格,我加上只是为了让"树"结构更醒目一点

Table1
================================
F_STR F_TEXT
10000 123
1000001
10000123
20000 234
20000234
2000012
30000 1234
3000009
30000100

现在我希望找出所有的父节点的F_TEXT里面包含'123'的树,就是说结果应该是:
10000 123
1000001
10000123
30000 1234
3000009
30000100
 
你们都犯了一个不大不小的错误 :-)

正确语句是:
select * from table1 where left(f_str,5) in (select f_str from aaa where f_text like '%123%')
 
对不起,后面那个aaa 应该改为table1
select * from table1 where left(f_str,5) in (select f_str from table1 where f_text like '%123%')
 
我按你的数据在我的数据库上运行正确!sybase sql server 11.92
 
Select P2.* from (Select 字符字段 form table1 where 文本字段 like '%xxx%') P1,table1 P2
~~~~~~是from啊,呵呵,不会是这里的问题吧?
where P1.字符字段 like P2.字符字段%
 
select * from table1 where left(字符字段,5)
in (select left(字符字段,5) where 文本字段 like '%1234%')
~~~~~ ~~~
不能用吗??

或者应改为下句??

select * from table1 a where left(a.字符字段,5)
in (select left(b.字符字段,5) from table1 b where b.文本字段 like '%1234%')
~~~~~ ~~~
 
cakk,别老吧题目变来变去的,现在应该是温柔一刀的正确了。
 
温柔一到的答案对乐,多谢!

LWW的视图的方法还是不行.(MS sql server 7.0)
 
可怜xujiancai同志,手一哆嗦就丢了这300分,不知道他为什么会犯这个小小的错误:

select * from table1 where left(zifu,5) in (select zifu where zhengshu=5)

子查询中没有 "from table1",说实话我都不知道为什么这条语句能通过,
看来SQL 的结果集还能自己嵌套,不知道是否为SQL标准。
总之这样一来结果就变成了cAkk死活搞不定的“只取出乐父节点” :-)

这么多后来人竟然也没有看出来,这种白捡分数的事情,实在是罪过 :-)
 
to 温柔一刀:我居然没看见 cAkk 的 Select 子句里少了 From 子句。

(我今天试了一下 cAkk 的写法,确实能运行,情况和他描述的一样)

但是,没有 From 子句怎么不会出错,我糊涂了,能解释一下原因吗?
~~~~~~~~ ~~~~~~~~~~~~~~

ps:cAkk 原来的语句如下:
select * from table1 where left(字符字段,5)
in (select 字符字段 where 文本字段 like '%1234%')
 
sorry 没刷新,没见到你的最后一张贴子
 
〉〉可怜xujiancai同志,手一哆嗦就丢了这300分,不知道他为什么会犯这个小小的错误:

〉〉select * from table1 where left(zifu,5) in (select zifu where zhengshu=5)

都怪自己大意,温柔一刀你给我的一刀并不一点不温柔。
但请不要称呼我:可怜xujiancai同志
钱财身外物,下次你有问题请先告诉我,我要从你身山拿回300分。


 
果然如此! 哦错怪xujiancai乐...

哦要给你一半的分数,到外面来拿分...
 
后退
顶部