Member 13574079 Ответов: 2

В приведенной ниже хранимой процедуре я пытаюсь избежать значения NULL и "", но не преуспеваю.


В приведенной ниже хранимой процедуре я пытаюсь избежать значения NULL и "", но не преуспеваю.
----------------------------------------

Что я уже пробовал:

CREATE PROCEDURE GET_DISTINCT_FIELD_VALUE 

  @FIELD_NAME nvarchar(50),
  @TABLE_NAME nvarchar(59)

AS

BEGIN

declare @q nvarchar(max)


 set @q = ' select distinct '+ @FIELD_NAME+' FIELD_VALUE from ' + @TABLE_NAME + ' where '+@FIELD_NAME +' <>'' order by '+@FIELD_NAME +' asc'


exec (@q)


END

2 Ответов

Рейтинг:
8

Santosh kumar Pithani

CREATE PROCEDURE GET_DISTINCT_FIELD_VALUE 
 (
 
  @FIELD_NAME nvarchar(50),
  @TABLE_NAME nvarchar(59)
 )
AS
 
BEGIN
 
declare @q nvarchar(max)
 

 set @q = ' select distinct '+ @FIELD_NAME+' FIELD_VALUE from ' + @TABLE_NAME + '
             where '+@FIELD_NAME +'<>'' ''  AND '+@FIELD_NAME +'IS NOT NULL 
             order by '+@FIELD_NAME;
 

EXEC(@q)
 

END


Member 13574079

Работаю, большое спасибо....:)

Рейтинг:
19

RDBurmon

см. обновление ниже

CREATE PROCEDURE GET_DISTINCT_FIELD_VALUE 
 
  @FIELD_NAME nvarchar(50),
  @TABLE_NAME nvarchar(59)
 
AS
 
BEGIN
 
declare @q nvarchar(max)
 

 set @q = ' select distinct '+ @FIELD_NAME+' FIELD_VALUE from ' + @TABLE_NAME + ' where len('+@FIELD_NAME +') <> 0 and ' + +@FIELD_NAME + ' Is not null order by '+@FIELD_NAME +' asc'
 

exec (@q)
 

END


Richard Deeming

У вас была дополнительная одинарная кавычка перед "0", которая нарушала запрос. Я снял его для тебя. :)

Member 13574079

Большое спасибо