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