gpt4 book ai didi

sql - 内连接转换失败

转载 作者:行者123 更新时间:2023-12-02 04:03:10 31 4
gpt4 key购买 nike

我正在尝试在 varchar 字段上内部加入一个smallint 字段。我只需要整数值,但出现错误。 varchar 字段有整数和字符串。我不需要 ID 字段,只需要 DESC。

我收到错误:

Conversion failed when converting the varchar value 'AWOL' to data type smallint.

表格如下所示:

==================================
|ID |DESC |
|==========|=====================|
|ACAMPROCAL|acamprosate calcium |
|----------|---------------------|
|BUPROPION |bupropion |
|----------|---------------------|
|1 |Other |
|----------|---------------------|
|4 |Expired |
|----------|---------------------|
|3 |Dschg |
|----------|---------------------|
|AWOL |Absence without Leave|
==================================

这是我尝试过但也注释掉的查询:

SELECT 
CASE_NUM, LAST_NAME, FIRST_NAME, MI, '' AS NA,
DOB, SEX, [ADDRESS], '' AS NA, CITY, STATE, ZIP
--,CONVERT(SMALLINT, CONVERT(VARCHAR(55), CDTBL1.[DESC]))
--,CASE WHEN CDTBL1.ID BETWEEN 1 AND 99999 THEN CDTBL1.[DESC]
--END AS COUNTY
FROM
CDCLIENT
INNER JOIN
CDTBL1 ON CDCLIENT.ADDR_COUNTY_ID = CDTBL1.ID

最佳答案

改变

'ON CDCLIENT.ADDR_COUNTY_ID = ' 

'ON CAST(CDCLIENT.ADDR_COUNTY_ID as varchar) = '

您应该检查要加入的列的数据类型,以确保它们是相同的类型。一般来说,我认为 ID 列应该是某种 int 类型,但您上面提供的表在 ID 列中也包含 varchar 值。

SQL 中的数据类型有优先级,smallint 高于 varchar。发生隐式转换导致失败。

更多信息请点击:https://msdn.microsoft.com/en-us/library/ms190309.aspx

关于sql - 内连接转换失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40898193/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com