【发布时间】:2021-09-27 20:07:09
【问题描述】:
如果有多个表,我想从这些表中找出col2为null时col1的值,并通过存储过程打印出来。
| col1 | col2 |
|---|---|
| a | A |
| b | null |
| b | B |
| c | C |
| a | null |
预期输出:
a,b
--what I did but can not work
create proc sp_getValue
@tableName varchar(30)
as
declare @result nvarchar(max)
select distinct col1=@result from @tableName
print @result
感谢您的帮助。
【问题讨论】:
-
您想要
a和b只是您打印的方式还是表格?无论如何,我建议你使用exec。 -
我想打印它们。我曾尝试将 select 语句写为字符串并执行字符串但无法工作。
-
要查找行,您需要使用
WHERE col2 IS NULL。但是,构造from @tableName永远不会起作用:FROM 子句不接受 @parameter 值,表名需要在查询中显式写入,因为编译器会检查表是否存在 + 您从中使用的所有列, 在评估任何参数值之前。请参阅here 了解如何解决此问题。 -
@PeterB 感谢您的帮助。我检查帖子。有帮助!
-
拥有多个具有相同架构的表通常是设计缺陷
标签: sql sql-server tsql stored-procedures