Sql server 选择计数(*)不返回数字

Sql server 选择计数(*)不返回数字,sql-server,Sql Server,我在执行临时表的count()时遇到以下问题。 它不返回数字,而是返回星号()。附加的代码,看看你是否可以指导我看到发生了什么。非常感谢你 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 IN

我在执行临时表的count()时遇到以下问题。 它不返回数字,而是返回星号()。附加的代码,看看你是否可以指导我看到发生了什么。非常感谢你

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  : *

您必须更改大小:

 PRINT 'VALUE : '+ CONVERT(VARCHAR(200),@COUNT_NUM );
                           -- here
@COUNT\u NUM
的值大于字符数时,将返回
*

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

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

Print concat('Value : ',@Count_Num)