Member 12965461 Ответов: 1

Как использовать результат CTE в select ?


<pre>
with Notesdate as
(
select KeyID,InsertedDate,NOTEID,ROW_NUMBER() over(Partition by KEYID order by InsertedDate desc) as ROWNUMBER from Note
)
--select inserteddate,KEYID from Notesdate ND where rownumber=1

SELECT Distinct		
	 
	
	          CASE WHEN LV.TypeName LIKE '%NOTES%'
	               THEN  'Notes' END AS Name,


            CASE WHEN LV.TypeName LIKE '%NOTES%'
			THEN 
			  
			  --     THEN N.InsertedDate= (Select  inserteddate from Notesdate where ROWNUMBER=1 ) 

FROM dbo.NOT N 
Inner JOiN Notesdate ND On ND.NoteID=N.NoteID

WHERE 
 N.InsertedByUserID<>'0'   



Во втором случае statment я хочу получить значение Inserteddate для rownumber=1.

Как этого добиться?

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

<pre>
with Notesdate as
(
select KeyID,InsertedDate,NOTEID,ROW_NUMBER() over(Partition by KEYID order by InsertedDate desc) as ROWNUMBER from Note
)
--select inserteddate,KEYID from Notesdate ND where rownumber=1

SELECT Distinct		
	 
	
	          CASE WHEN LV.TypeName LIKE '%NOTES%'
	               THEN  'Notes' END AS Name,


            CASE WHEN LV.TypeName LIKE '%NOTES%'
			THEN 
			  
			  --     THEN N.InsertedDate= (Select  inserteddate from Notesdate where ROWNUMBER=1 ) 

FROM dbo.NOT N 
Inner JOiN Notesdate ND On ND.NoteID=N.NoteID

WHERE 
 N.InsertedByUserID<>'0'   

Santosh kumar Pithani

Используйте ваше условие случая должно быть "
СЛУЧАЕ, КОГДА ЛВ.Как имя_типа '%примечание% и ND.Функции row_number=1
ЗАТЕМ
Й.inserteddate
ЕЩЕ
нулевое окончание

Member 12965461

Я не хочу, чтобы в результате был напечатан null, я хочу получить результат только с ND.Row_number=1

Santosh kumar Pithani

Если условие case true , то он возвращает InsertedDate, его штраф, но если условие не выполняется, какая запись должна вернуться? По умолчанию он возвращает нулевые значения для вашего понимания, что я дал null.

Member 12965461

правильный. Но я должен напечатать только ND.Rownumber=1 в результате. можем ли мы сделать это каким - то другим способом, а не с помощью оператора case?

Member 12965461

правильный. Но я должен напечатать только ND.Rownumber=1 в результате. можем ли мы сделать это каким - то другим способом, а не с помощью оператора case?

Member 12965461

может кто нибудь пожалуйста помочь здесь

1 Ответов

Рейтинг:
1

Faaiz Shabbir

Проверьте эту ссылку. надеюсь, это поможет
Обобщенные табличные выражения (введение в КТР-х) - необходимые для SQL[^]