SQL一次查出相关类容避免长时间占用表(下)

/*
server:
db: EDI
*/
-- 以下案例多次查询同一张表,仅有Name条件不同
--可以使用一次查出相关类容避免长时间占用表
USE EDI
GO
DECLARE @FileTypeID_X12850 int 
       ,@FileTypeID_X12832 int 
       ,@FileTypeID_X12846 int 
SELECT TOP 1 
    @FileTypeID_X12850 = ID 
FROM dbo.EDI_CFG_FileType WITH(NOLOCK) 
WHERE 
    Name='X12850' 
SELECT TOP 1 
    @FileTypeID_X12832 = ID 
FROM dbo.EDI_CFG_FileType WITH(NOLOCK) 
WHERE 
    Name='X12832' 
SELECT TOP 1 
    @FileTypeID_X12846 = ID 
FROM dbo.EDI_CFG_FileType WITH(NOLOCK) 
WHERE 
    Name='X12846' 



---更改后

use EDI
go

DECLARE @FileTypeID_X12850 int 
       ,@FileTypeID_X12832 int 
       ,@FileTypeID_X12846 int 

select @FileTypeID_X12850=X12850
		,@FileTypeID_X12832=X12832
		,@FileTypeID_X12846=X12846

--select X12850,X12832
from
	(
		select ID,Name from dbo.EDI_CFG_FileType WITH(NOLOCK) 
		where Name in('X12850','X12832','X12846')
	) as tem
pivot
(
	max(ID)
	for
	Name in ([X12850],[X12832],[X12846])
)
as piv
select @FileTypeID_X12850
	,@FileTypeID_X12832
	,@FileTypeID_X12846

  

原文地址:https://www.cnblogs.com/cykj/p/SQL-Avoid-occupation-downn.html