.net - SQL subquery return more that 1 value -


hi trying execute query row between number , trying rows between 10-20. using subquery can use row_number() function

the query fails error:

sql subquery return more 1 value

so need figure way out because need more 1 resulset out of query

procedure dbo.search      (     @search_text varchar(max),      @search_category varchar(max),     @page int,     @count int output     )        set nocount on      declare @lower_limit int = (@page-1)*10;      declare @upper_limit int = (@page * 10) + 1;     -- set @count =0      if @search_category='deal'      begin         set @count = (select count(*) dealdata dealinfo  '%' + @search_text + '%' or dealname '%' + @search_text + '%' or dealdescription  '%' + @search_text + '%' group dealid);         select x.dealid , x.row                  ( select dealid,row_number() over(order dealid) row dealdata dealinfo  '%' + @search_text + '%' or dealname '%' + @search_text + '%' or dealdescription  '%' + @search_text + '%'  group dealid)x            x.row < @upper_limit , x.row > @lower_limit      end 

this full procedure , when try call following code exception @ _command.executereader(); subquery returned more 1 value. not permitted when subquery follows =, !=, <, <= , >, >= or when subquery used expression.

 _query = "search";                 _command = new sqlcommand(_query, _connection);                 _command.commandtype = commandtype.storedprocedure;                 _command.parameters.addwithvalue("@search_text", search_text);                 _command.parameters.addwithvalue("@search_category", search_category);                 _command.parameters.addwithvalue("@page", page);                 var returnparameter = _command.parameters.add("@count", sqldbtype.int);                 returnparameter.direction = parameterdirection.output;                 _reader = _command.executereader();                 while (_reader.read())                 {                     search_result index = new search_result();                     index.category_id = this._categoryidfromname(search_category);                     index.post_id = _reader.getvalue(0).tostring();                     _searchlist.add(index);                 } 

the problem part of sp:

set @count = (  select count(*) dealdata                  dealinfo  '%' + @search_text + '%'                  or dealname '%' + @search_text + '%'                  or dealdescription  '%' + @search_text + '%'                  group dealid) 

specifically, group dealid part. if have multiple dealid on table, going multiple rows result. obviously, can't assign on scalar variable. either @count need declared table variable (which change logic of rest of sp), or rid of group dealid, , verify gives desired results.


Comments

Popular posts from this blog

c# - SVN Error : "svnadmin: E205000: Too many arguments" -

c# - Copy ObservableCollection to another ObservableCollection -

All overlapping substrings matching a java regex -