将(转换)id转换为字符串

时间:2016-05-18 11:18:12

标签: sql sql-server

我正在尝试根据数据库从数据库中显示一些记录。在这种情况下,当我执行select查询时,我想基于ID(column1)显示名称(column2),并且我收到此错误。

  

Msg 8114,Level 16,State 5,Line 1   将数据类型varchar转换为数字

时出错

我知道转换有问题,我正在寻找基于此错误的答案,但找不到任何东西。一点帮助?

查询我尝试过的内容:

select part1 
from primar 
where id='1' and id in (select name from primar2)

数据如下:

ID         Name
===        ===
1          Mike
2          John
3          Mary
4          Anne
5          Jack

后来编辑:也许我解释错了。上面示例中的ID列属于Table1,每个ID都有一个名称相关联。在Table2中还有一些其他记录,其中包括来自ID的{​​{1}}。我在Table1上运行SELECT查询,我想显示Table2中找到的ID的名称,而不是ID本身。

4 个答案:

答案 0 :(得分:3)

如果我理解你的问题,可能是你在where子句中使用了错误的字段。代替id,你必须在

中使用名字
select part1 
from primar 
where id=1 and ID in (select Id from primar2)

答案 1 :(得分:1)

您可以使用 INNER JOIN 获取所需的输出。摆脱 id =' 1'

中的引号
SELECT 
    p.part1 
FROM 
    primar p INNER JOIN primar2 p2  ON p.Id =p2.Id 
WHERE 
    p.Id =1

答案 2 :(得分:0)

你必须摆脱id = '1'

中的引号
SELECT part1 FROM primar WHERE id = 1 AND id IN (SELECT id FROM primar2)

答案 3 :(得分:0)

我相信你正在寻找内心联盟;

SELECT 
t1.*
,t2.name 
FROM table1 t1
INNER JOIN table2 t2 
ON t1.ID = t2.user_id
WHERE p.id = '1'

这将为tablein提供表2中匹配的所有内容,并返回名称。在没有看到您的架构的情况下,我在连接字段中进行了猜测,因此如果需要,可能需要更新。