Sql server 将sql查询输出到变量,然后创建新查询

Sql server 将sql查询输出到变量,然后创建新查询,sql-server,Sql Server,我试图从一个表中输出查询结果,并将该变量用作另一个表中的“like”。 查询的第一部分应该能得到所有信息*。变量或数组将作为“like”的一部分在查询的第二部分中使用 这就是我所拥有的: DECLARE @UpnPref nvarchar(100), @WC nvarchar(10) Set @UpnPref = 0 Set @WC = '*' Select @upnpref = UpnPrefix from dbo.ADUsers where UPNPrefix = @WC print @

我试图从一个表中输出查询结果,并将该变量用作另一个表中的“like”。 查询的第一部分应该能得到所有信息*。变量或数组将作为“like”的一部分在查询的第二部分中使用

这就是我所拥有的:

DECLARE @UpnPref nvarchar(100), @WC nvarchar(10)
Set @UpnPref = 0
Set @WC = '*'

Select @upnpref = UpnPrefix from dbo.ADUsers where UPNPrefix = @WC

print @upnpref  <-- returns a 0

Select * from dbo.UserMailbox where LinkedAccount like '%' + @UpnPref +'%'

如果您试图从dbo.UserMailbox中选择LinkedAccount与dbo.ADUsers中每个记录的UpnPrefix匹配的所有内容,则可以这样做:

SELECT U.* 
FROM dbo.UserMailbox U
    INNER JOIN dbo.ADUsers A ON U.LinkedAccount = A.UpnPrefix

如果从dbo.ADUsers中选择UpnPrefix,其中UpnPrefix='*'返回任何内容,请重试,因为这是您试图分配给@UpnPrefIt的内容,只返回0,其他内容都不返回。因此,您可以。。。但是你的select语句没有任何意义。不清楚您想做什么我需要做的是传递一个通配符,但是如何传递?SQL Server本身没有通配符。类似于“%xyz%”的UPNPref将匹配包含“xyz”的UPNPref的任何值。如果这解决了问题,您可以将其标记为接受答案