我想ISNULL
与表格的所有列一起使用。
像这样
SELECT ISNULL(* , 'NA') FROM #tbl
我知道这是一种错误的方式,我必须分别指定每个列名才能使用ISNULL
。
但在我的情况下#tbl
是一个临时表,列是动态创建的
像这样:
EXEC ('ALTER TABLE #tbl ADD [' + @bno + '] varchar(30)')
因此,我不能在选择查询中使用列名,因为列名总是不同的。
所以我该怎么做?
我想ISNULL
与表格的所有列一起使用。
像这样
SELECT ISNULL(* , 'NA') FROM #tbl
我知道这是一种错误的方式,我必须分别指定每个列名才能使用ISNULL
。
但在我的情况下#tbl
是一个临时表,列是动态创建的
像这样:
EXEC ('ALTER TABLE #tbl ADD [' + @bno + '] varchar(30)')
因此,我不能在选择查询中使用列名,因为列名总是不同的。
所以我该怎么做?
将您的动态 SQL 更改为:
EXEC ('ALTER TABLE #tbl ADD [' + @bno + '] varchar(30) NULL DEFAULT(''NA'')')
尝试从 tempdb.sys.columns 表中获取临时表的字段,然后遍历这些字段:
select c.*
from tempdb.sys.columns c
inner join tempdb.sys.tables t ON c.object_id = t.object_id
where t.name like '#TableName%'