2014-01-26 252 views
0

我创建了一个视图来编号重复值。代码是:错误在视图中将数据类型nvarchar转换为bigint

SELECT *,RANK() OVER(PARTITION BY Lookup ORDER BY n) AS rank 
FROM dbo.PENTACIA_PO_QTY 

查找也是表中的一列。

当我想要CONCAT重复值,例如。 COL.NAME与排名第一即

TEST1 
TEST2 
NAME1 

它给我的:Error Converting data type nvarchar to bigint error.这是为什么?

的CONCAT CODE:

我试图在同一时间的排名做到这一点:

SELECT *,CardCode + RANK() OVER(PARTITION BY Lookup ORDER BY Lookup) AS rank 
FROM dbo.PENTACIA_PO_QTY` 
+0

您能否提供您用于连接的代码? – MarkD

回答

1

RANK()返回BIGINT - 你不能使用操作符+把它串联到* CHAR列

您可以将结果强制转换或转换为* char,例如

SELECT *, 
    CardCode + CAST(RANK() OVER(PARTITION BY Lookup ORDER BY Lookup) AS VARCHAR(20)) 
    AS CardPlusRank 
FROM dbo.PENTACIA_PO_QTY; 
+0

你是一台机器...作品100% –

+0

如何使这个线程解决 –

+0

很高兴我能帮到你。注意到“PARTITION BY”和“ORDER BY”同样的事情是不寻常的 - AFAIK这将返回一个1的RANK(),对于所有的值 – StuartLC

相关问题