【发布时间】:2021-10-20 17:42:49
【问题描述】:
我正在尝试从表中逐行读取并将值传递给查询条件。我无法继续进行。我必须使用计数器/迭代还是有任何选项。非常感谢任何帮助
我想将值传递给像条件这样的值
create table #temp
(
userid int,
typeid int
)
insert into #temp values (1, 101)
insert into #temp values (1, 221)
insert into #temp values (3, 401)
insert into #temp values (4, 501)
create table #target
(
userid int,
roleid int,
value varchar(max)
)
insert into #target values (1, 000, 'something here userid:1 typeid:101 something here')
insert into #target values (1, 001, 'something here userid:1 typeid:221 something here')
insert into #target values (1, 001, 'something here userid:1 typeid:331 something here')
insert into #target values (3, 002, 'something here userid:3 typeid:401 something here')
select t.userid, d.roleid, t.typeid
from #target d
inner join #temp t on t.userid = d.userid
and value like '%userid:'t.userid' typeid:'t.typeid'%'
这是我得到的结果:
| userid | roleid | typeid |
|---|---|---|
| 1 | 000 | 101 |
| 1 | 001 | 221 |
| 3 | 002 | 401 |
【问题讨论】:
-
@DaleK 我的道歉在条件中添加了 ON 并修改了问题以明确。非常感谢任何帮助
-
and value like '%userid:'t.userid' typeid:'t.typeid'%'也不是有价值的 SQL 吗? -
@DaleK 我需要关于如何更改查询或必须更改整个方法的帮助
-
@DaleK 我在结果中需要角色 ID、用户 ID、类型 ID。这是问题中的最后一个查询
标签: sql sql-server tsql dynamic where-clause