选择COUNT(*)不返回任何数字

时间:2019-07-06 14:06:49

标签: sql-server

执行临时表的计数()时出现以下问题。 它不返回数字,而是返回星号()。附上代码,看看您是否可以指导我了解正在发生的事情。非常感谢。

DECLARE @COUNT_NUM INTEGER;

CREATE TABLE #PRODUCTS_DIM
( PRODUCT VARCHAR(20)
);

INSERT INTO #PRODUCTS_DIM
SELECT PRODUCT
FROM PRODUCTS_TABLE
WHERE PRODUCT IS NOT NULL;

CREATE INDEX IDX_PRODUCT ON #PRODUCTS_DIM(PRODUCT); 


SELECT @COUNT_NUM = COUNT(*) FROM #PRODUCTS_DIM;

PRINT 'VALUE : '+ CONVERT(VARCHAR(2),@COUNT_NUM );

返回:

VALUE  : *

2 个答案:

答案 0 :(得分:1)

您必须更改大小:

 PRINT 'VALUE : '+ CONVERT(VARCHAR(200),@COUNT_NUM );
                           -- here

@COUNT_NUM的值大于字符数时,将返回*

Value: 1
Value: 10
Value: 99
Value: *     (for 100)

答案 1 :(得分:1)

另一个选择是concat(),您不必担心长度。

Print concat('Value : ',@Count_Num)