sql - 单个输入参数存储过程的输入值列表
问题描述
我编写了一个存储过程,它接受单个输入参数,并通过运行存储过程提供多个输出参数值。但是我正在尝试发送经过逻辑的输入值列表,并将在其中显示相应的输出而不是一对一的输入。
我已经在这个问题的代码部分创建了一个临时表,但实际上我在数据库中有一个可用的表,我想从该表中获取输入(指定列)(如下所示,Candidate_Name
从中选择#Temp1
)并提供我的存储过程,以便它将检索该巨大列表的每个输入参数的其他详细信息。
/************ Table Creation ****************/
CREATE TABLE #TEMP1
(
Candidate_Name VARCHAR(20),
Age INT,
Designation VARCHAR(20)
)
INSERT INTO #TEMP1 VALUES
('Smith', 18 , 'Staff Accountant'),
('Williams',32 , 'Sr. Software Engineer'),
('Weinberg',40, 'Human Resource Manger'),
('Franklin',35, 'Operations Manager'),
('Armstrong',22, 'Database Administrator'),
('Cromley', 30, 'Recruting Manager'),
('Richardson',33,'Safety Clerk'),
('Horton', 45, 'Accounting Manager'),
('Washington',22,'HelpDesk Technician')
GO
/************ End of Table Creation ****************/
/************ Stored Procedure **************/
CREATE PROC [Employee_Details]
(@Name Varchar(20))
AS
DECLARE @AGE INT,
@Designation VARCHAR(20)
SELECT AGE, Designation
FROM #TEMP1
WHERE Candidate_Name = @Name
/************ End of Stored Procedure **************/
/************ Execution of Stored Procedure **************/
CREATE TABLE #TEMP2 (Employee_Name VARCHAR(20))
INSERT INTO #TEMP2
SELECT Candidate_Name
FROM #TEMP1
EXEC [Employee_Details] Employee_Name
DROP TABLE #TEMP1
DROP TABLE #TEMP2
通过这种方式,我的存储过程将Employee_Name
作为输入参数/参数并返回NULL
,而不是我想解析表中的完整列表Candidate_Names
并#Temp1
一次性检索它们的信息。
我认为我提供存储过程的方式是错误的,如果有人提出很棒的想法。
解决方案
尝试这个:
CREATE FUNCTION <schema>.fn_Get_Employee_Details
(@Name VARCHAR(60) = NULL)
RETURNS TABLE
AS
RETURN
(SELECT t.Candidate_Name AS Employee_Name,
t.Age,
t.Designation
FROM abrechnung.test4 AS t
WHERE @Name IS NULL
OR t.Candidate_Name = @Name)
GO
选择:
SELECT * FROM <schema>.fn_Get_Employee_Details('Weinberg') -- DEFAULT = NULL -> all entries
结果:
Employee_Name Age Designation
Weinberg 40 Human Resource Manger
如果这不是您的预期输出,请写下您想要的内容。
推荐阅读
- java - 它如何确保一个节点是祖先而不是兄弟节点?
- c++ - 为什么 CMake 没有在这个 CMakeList.txt 中链接 pthread?
- swift - 当数据发生变化时快速加载firebase数据库数据
- c# - 如何转换日期时间?到 C# 中的 DateTime 以及如何比较两个日期
- superset - jsonschema 2.6.0 已安装,但 {'flask-appbuilder'} 需要 jsonschema>=3.0.1<4
- python - 哪些特征可以帮助对句末进行分类?序列分类
- npm-install - npm install react-bootstrap 错误
- python - 当类包含空格时获取空数组
- c - 如何与 If 两个字符串的值进行比较?
- pyomo - 控制模型文件中的有效位数