当前位置: 代码迷 >> Sql Server >> 一个子查询的有关问题
  详细解决方案

一个子查询的有关问题

热度:18   发布时间:2016-04-27 19:57:13.0
一个子查询的问题
select     nam   ,phone,fax,
addr,
family,distance   from   airgas
where   (select   len(addr)-len(replace(addr, ', ', ' '))   from   airgas   )   >   2

这是我写的一个查询,查询出逗号出现次数大于2的记录,但是有错误提示,如下,没有看明白,请各位个指导一下。
Server:   Msg   512,   Level   16,   State   1,   Line   1
子查询返回的值多于一个。当子查询跟随在   =、!=、 <、 <=、> 、> =   之后,或子查询用作表达式时,这种情况是不允许的。


------解决方案--------------------
改為


select nam ,phone,fax,
addr,
family,distance from airgas
where len(addr)-len(replace(addr, ', ', ' ')) > 2
------解决方案--------------------
這裡沒必要使用子查詢。

另外,出錯的原因就是,你這個子查詢中的返回的紀錄不止一條,但是你卻將這個結果集和2進行比較。
  相关解决方案