TSQL - сравнить таблицы - PullRequest
       14

TSQL - сравнить таблицы

0 голосов
/ 24 июня 2011

Я хочу создать хранимую процедуру, которая сравнивает результаты двух запросов. Если результаты второй таблицы можно найти в первой, выведите «YES», в противном случае выведите «No».

Таблица 1:

SELECT     dbo.Roles.RoleName, dbo.UserRoles.RoleID
FROM         dbo.Roles LEFT OUTER JOIN
dbo.UserRoles ON dbo.Roles.RoleID = dbo.UserRoles.RoleID
WHERE     (dbo.Roles.PortalID = 0) AND (dbo.UserRoles.UserID = 2)

Таблица 2:

Declare @RowData as nvarchar(2000)
Set @RowData = ( SELECT EditPermissions FROM vw_XMP_DMS_Documents where DocumentID = 2)
Select Data
from dbo.split(@RowData, ',')

Например.

Таблица 1:

John
Jack
James

Таблица 2:

John
Sally
Jane

Печать «ДА»

Возможно ли это?

1 Ответ

1 голос
/ 24 июня 2011

Я использую временные таблицы, потому что я не знаю, какой формат имеют ваши таблицы.

SELECT     dbo.Roles.RoleName, dbo.UserRoles.RoleID 
INTO #t1
FROM         dbo.Roles LEFT OUTER JOIN 
dbo.UserRoles ON dbo.Roles.RoleID = dbo.UserRoles.RoleID 
WHERE     (dbo.Roles.PortalID = 0) AND (dbo.UserRoles.UserID = 2) 


Declare @RowData as nvarchar(2000) 
Set @RowData = ( SELECT EditPermissions FROM vw_XMP_DMS_Documents where DocumentID = 2) 
Select Data 
INTO #t2
from dbo.split(@RowData, ',') 


select case when exists (select 1 from #t1 where RoleName = t.Data) then 'yes' else 'no' end answer, Data 
into #tmp
from #t2 t

select * from #tmp

Я не уверен на 100%, что вы хотите.Так что я думаю.

добавил это после понимания вопроса

if exists(select 1 from #t2 t2 join #t1 t1 on t1.RoleName = t2.data) 
print 'permsGranted' 
ELSE print 'permsNotGranted'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...