2017-05-16 32 views
-2

基于我在线研究的内容,不确定这是否可行。但只是想检查一下。有没有办法将参数加入表中?

如果我有一个参数,如:

declare @Person nvarchar(4000) 
set @Person = '1234567' 

而且我有一个表叫[People],然后我可以将两个在一起吗?

喜欢的东西:

SELECT * FROM [People] t1 JOIN @Person t2 ON (t1.ID = t2.ID) 

是这样的可能,如果这样的事情有人可以提供的语法或〔实施例?

+0

该参数是一个标量值。你为什么想加入它,你期望结果如何。 1234567号码是多少?是ID? 显然,你可以声明一个表变量并填充它并加入你的表。这对我来说似乎很奇怪。 – FLICKER

+0

给观众:[this](http://stackoverflow.com/questions/44008157/exists-in-filter-returning-too-many-values)和[this](http://stackoverflow.com/questions/ 43989977/too-many-parameter-values-slowing-down-query)形成背景,没有这个背景,这个问题没有什么意义。即使是这样, ... 。 'ssms'标签当然是虚假的。数据库软件是隐含的,但没有说明。 – HABO

+0

@HABO正确地将这篇文章标记为不愿意学习或阅读答案的人的系列文章中的第三篇。不要在这里浪费你的时间,他们不听。 –

回答

0

使用此示例数据:

CREATE TABLE dbo.People (id int, peopleInfo nvarchar(4000)); 
INSERT dbo.People VALUES (123, 'joe'), (223, 'sally'), (323, 'Mary'); 

你可以这样做:

declare @Person nvarchar(4000) = '323' 

SELECT t1.* 
FROM dbo.People t1 
JOIN (VALUES (@Person)) t2(id) ON t1.ID = t2.ID; 

但为什么不这样做呢?

SELECT t1.* 
FROM dbo.People t1 
WHERE t1.id = @Person; 
相关问题