【问题标题】:Is there a way to join a parameter to a table?有没有办法将参数加入表?
【发布时间】:2017-10-16 04:46:23
【问题描述】:

根据我在网上的研究,不确定这是否可行。但只是想检查一下。

如果我有一个参数,例如:

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

而且我有一个名为[People] 的表,那么我可以将两者合并在一起吗?

类似:

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

这样的事情是否可能,如果可以,请提供语法或示例?

【问题讨论】:

  • 参数是一个标量值。你为什么想加入它,你期望结果是什么。 1234567的号码是多少?那是身份证吗?显然你可以声明一个表变量并填充它并加入你的表。这对我来说似乎很奇怪。
  • 致观众:thisthis 构成了背景,没有它们,这个问题就毫无意义。即使是这样, ... 。 ssms 标签当然是虚假的。并且数据库软件是暗示但没有说明。
  • @HABO 正确地将这篇文章标记为不愿意学习或阅读答案的人的系列文章中的第三篇。不要在这里浪费你的时间,他们没有在听。

标签: tsql join parameters ssms


【解决方案1】:

使用此示例数据:

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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-04
    • 1970-01-01
    • 1970-01-01
    • 2021-03-24
    • 2016-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多