首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将列名存储在变量中,并返回列为True的行

将列名存储在变量中,并返回列为True的行
EN

Stack Overflow用户
提问于 2017-03-07 12:48:07
回答 1查看 108关注 0票数 0

我有两个表,我正在尝试加入一个需要用户输入的查询。我想根据用户输入将一个表中的列名存储在一个变量中,所有可能的列都是位数据类型为true或false。我希望从存储在变量中的列的值为true的TB_Samples表中返回行,并与来自TB_Projects表的项目摘要信息连接。到目前为止,这是我的代码:

代码语言:javascript
复制
DECLARE @Analysis nvarchar(20)
DECLARE @SQLQuery nvarchar(1000)
SET @Analysis = 'Elemental Analysis'
SET @SQLQuery = N'SELECT TB_Projects.JobLog#, TB_Projects .ProjName, SUM(TB_Samples.Sample#)
FROM TB_Projects INNER JOIN TB_Samples ON TB_Projects.JobLog# = TB_Samples.JobLog#
WHERE TB_Samples.[Elemental Analysis] = True GROUP BY TB_Projects.JobLog#, TB_Projects .ProjName'
EXECUTE(@SQLQuery)

现在,我在代码中设置了列变量,以便进行测试,我最终希望通过Vis中的SQLServer将该变量的值传递给c#。我收到的当前错误声明:

Msg 207,第16级,状态1,第3行无效列名‘True’。“

不知道我哪里出了问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-07 12:51:23

错误信息非常清楚。你有这句话:

代码语言:javascript
复制
WHERE TB_Samples.[Elemental Analysis] = True

True不是Server中的关键字。也许你打算:

代码语言:javascript
复制
WHERE TB_Samples.[Elemental Analysis] = 'True'

但这只是猜测。

我应该指出,标记列通常以数字或位的形式存储),0表示false,1表示true。因此,其意图可能是:

代码语言:javascript
复制
WHERE TB_Samples.[Elemental Analysis] = 1

但是,如果是这样的话,那么列名应该说明它到底是什么。。。IsElementalAnalysisElementalAnalysisFlag.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42648762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档