sql - 如何在 SQL Server 中插入用 parentCode 填充的表
问题描述
我有很多代码,这个代码在另一个表中有很多孩子
DECLARE @value VARCHAR(150);
SET @value = '4105';
SELECT VALUE Parent
INTO ##k
FROM dbo.Split (',',@value)
SELECT DISTINCT lastlevel
INTO ##tmp_getAllLastLevel
FROM [DWH-INF].[center].[dbo].[IFIRView_NeginTitleTotal]
WHERE lastlevel IN (SELECT parent FROM ##k)
OR level1 IN (SELECT parent FROM ##k)
OR level2 IN (SELECT parent FROM ##k)
OR level3 IN (SELECT parent FROM ##k)
OR level4 IN (SELECT parent FROM ##k)
OR level5 IN (SELECT parent FROM ##k)
OR level6 IN (SELECT parent FROM ##k)
OR level7 IN (SELECT parent FROM ##k)
OR level8 IN (SELECT parent FROM ##k)
此代码可以,并获取父 id = 4105 的所有子代。
但我有很多父母喜欢
SET @value = '4105,4106,2034,2055';
如何将所有 lastlevel 和 parent 插入到一个表中,比如这个表
parent lastlevel
------------------------------
4105 1273
4105 1275
4105 1279
4106 1288
4106 1292
2055 1073
感谢您阅读我的问题
解决方案
你可以像这段代码一样使用内部连接
select tb1.Parent,tb2.lastlevel into ##tmp_getAllLastLevel from ##k
tb1 inner join [DWH-INF].[center].[dbo].[IFIRView_NeginTitleTotal] tb2 on
tb1.Parent=tb2.lastlevel or tb1.Parent=tb2.level1 or
tb1.Parent=tb2.level2 or tb1.Parent=tb2.level3 or tb1.Parent=tb2.level4 or
tb1.Parent=tb2.level5 or tb1.Parent=tb2.level6 or tb1.Parent=tb2.level7
or tb1.Parent=tb2.level8
并获取所有父级和最后一级
推荐阅读
- php - MYSQL 中的这个日期比较可以工作吗?
- jquery - jQuery点击附加类
- c++ - 转发声明的枚举,.h 中的默认值
- laravel - 如何在 Laravel 5.6 中禁用注册新用户
- sql - 如何获得一行中的最大值以及所有列的名称以获得相等的值
- php - 使用 PHP 正则表达式从字符串中提取年份
- javascript - 如何覆盖 Node.js 模块中的函数?
- batch-file - RegEx 适用于在线模拟器,但不适用于带有 findstr 的 BatchFile
- ios - AvPlayer 和 AirPlay 不能很好地工作
- android - 与 QUIC 一起使用的 Android WebView