gpt4 book ai didi

sql - 在 MSSQL 中打印某一特定查询时遇到困难

转载 作者:行者123 更新时间:2023-12-02 09:32:17 26 4
gpt4 key购买 nike

我正在尝试构建一个小型查询,该查询将从数据库中的各个字段中提取数据并以人类可读的列表格式打印它们(这是运算符(operator)习惯看到的)。我这里的代码还远未完成,但在我看来它应该可以工作。

DECLARE @PSUCARD VARCHAR(20)
DECLARE @EQUIPMENT VARCHAR(50)
DECLARE @T1 VARCHAR
SET @PSUCARD = 'PSU-888'
SET @EQUIPMENT = '123_POUCH'

PRINT @PSUCARD + ':'
PRINT @EQUIPMENT
PRINT ''

IF (SELECT TEMPERATURE_MAIN FROM PSU WHERE PSU.PART_ID = @PSUCARD AND PSU.OPERATION_RESOURCE_ID = @EQUIPMENT)IS NOT NULL BEGIN
SET @T1 = (SELECT TEMPERATURE_MAIN FROM PSU WHERE PSU.PART_ID = @PSUCARD AND PSU.OPERATION_RESOURCE_ID = @EQUIPMENT)
PRINT 'Temperature: ' + @T1
--(SELECT TEMPERATURE_MAIN FROM PSU WHERE PSU.PART_ID = @PSUCARD AND PSU.OPERATION_RESOURCE_ID = @EQUIPMENT)
END

如果我按原样执行代码,@T1 返回一个 * 而不是一个值。如果我删除下面一行中的注释,我就确信那里确实有值(value)。我有其他与此非常相似的代码,效果很好。有什么想法吗?

另外,我不知道这是否有助于诊断问题,但是尽管数据库中的温度字段是 INT,但如果我尝试将 @T1 视为 INT,我会收到一条转换消息。

最佳答案

这是因为您将 @T1 声明为 VARCHAR,但没有长度。根据this :

When n is not specified in a data definition or variable declaration statement, the default length is 1. When n is not specified when using the CAST and CONVERT functions, the default length is 30.

声明 VARCHAR 变量时应始终指定长度:

DECLARE @T1 VARCHAR(50)

关于sql - 在 MSSQL 中打印某一特定查询时遇到困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31812269/

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