How to force SQL Server to execute a query in a specific order

I have the following request

    
DECLARE @userId INT  
DECLARE @siteId INT

SET @siteId = -1  
SET @userId = 1828  

SELECT a.id AS alertId,  
        a.location_id,  
        a.alert_type_id,  
        a.event_id,  
        a.user_id,  
        a.site_id,  
        a.accepted_by  
FROM alerts AS a    
JOIN alert_types AS ats ON a.alert_type_id = ats.id 
JOIN events AS tr ON a.event_id = tr.event_id 
WHERE tr.end_Time IS null
AND tr.status_id = 0
AND ats.code = 'E'
AND a.site_id in (SELECT * FROM dbo.udf_get_event_sitelist (@siteId, @userId))

5 17 , dbo.udf_get_event_sitelist (@siteId, @userId) , .

SQL Server . , , SQL, .

+3
4

"FROM"

DECLARE @userId INT  
DECLARE @siteId INT

SET @siteId = -1  
SET @userId = 1828  

SELECT  a.id AS alertId,  
        a.location_id,  
        a.alert_type_id,  
        a.event_id,  
        a.user_id,  
        a.site_id,  
        a.accepted_by  
FROM    (SELECT * FROM dbo.udf_get_event_sitelist(@siteId, @userId)) dt
JOIN    alerts AS a ON dt.site_id=a.site_id
JOIN    alert_types AS ats ON a.alert_type_id = ats.id 
JOIN    events AS tr ON a.event_id = tr.event_id 
WHERE   tr.end_Time IS null
AND     tr.status_id = 0
AND     ats.code = 'E'
+4

udf_get_event_sitelist , @@rowcount > 0

+3

, , , , SELECT. , SELECT 100 , 100 .

Sambo99 ( , , ).

+2

, UDF, , , (*)

SELECT * FROM dbo.udf_get_event_sitelist(@siteId, @userId)

to

SELECT site_id FROM dbo.udf_get_event_sitelist(@siteId, @userId)
0

Source: https://habr.com/ru/post/1704715/


All Articles