我有这种情况:
declare @data table (Name varchar(100), Surname varchar(100), Extension int )
insert into @data
select
Comp.Name, Comp.Surname, Comp.Ext
from
Comp
where
Comp.Dept = 25
declare @fieldName varchar(100) = 'Name'
declare @getter varchar(100)
select @getter = (@fieldName) from @data where Extension=101
我需要在@getter
中加入“Jhon”,“Mary”或“Peter”等等......
如果我将@fieldName
的值更改为Surname
,我应该得到他们的姓氏。
有点难以解释,但我需要的是在存储在本地var中的查询中引用列名
答案 0 :(得分:2)
使用以下查询。
DECLARE @fieldName VARCHAR(100) = 'Name'
DECLARE @getter VARCHAR(100)=''
DECLARE @sql NVARCHAR(MAX) ='declare @data table (Name varchar(100), Surname varchar(100), Extension int )
insert into @data select Comp.Name, Comp.Surname, Comp.Ext from Comp where Comp.Dept=25
SELECT @Output='+@fieldName+' from @data where Extension=101'
EXEC sp_executesql @sql,N'@Output NVARCHAR(100) OUT',@getter OUT
SELECT @getter
答案 1 :(得分:0)
例如:
<ion-content>
<div collection-repeat="month in months"
item-height="200px">
//month template
</div>
</ion-content>
希望有所帮助
答案 2 :(得分:0)
给定WHERE子句和临时表,您可以简单地从表中选择,避免使用临时表。此示例使用CASE
,如果您需要更多列,请对其进行修改/添加;如果需要Dept和Ext,请使用其他参数,不需要任何棘手的代码。
如果只有多个匹配项,则只需要一个TOP 1
。
DECLARE @col VARCHAR(50)
SET @col = 'Name'
SELECT
CASE
WHEN (@col='Name') THEN Comp.Name
WHEN (@col='Surname') THEN Comp.Surname
END AS SearchName
FROM Comp
WHERE Comp.Dept=25
AND Comp.Ext=101
请注意,这不使用动态SQL,可以设置为参数化查询,使其更安全。
这是一个简单的小提琴来测试它:https://w3c.github.io/ServiceWorker/