我有一张股票报价表,日期:
StockID QuoteID QuoteDay QuoteClose
---------------------------------------
5 95 2018-01-03 1.080
5 96 2018-01-04 1.110
5 97 2018-01-05 1.000
5 98 2018-01-06 1.030
5 99 2018-01-07 1.010
5 100 2018-01-08 0.899
5 101 2018-01-09 0.815我创建了一个聚集索引来操作数据,但是在索引中遇到了重复的键错误。
CREATE UNIQUE CLUSTERED INDEX MACD_IDX ON #TBL_MACD_LOOP (StockId, QuoteId)StockID和QuoteID的不同组合将产生相同的输出:
例如,(StockID, QuoteID) of (5, 11)和(51, 1)都生成511索引。
我的解决方案是在StockId和QuoteId之间添加"-“。
现在,(5, 11)生产5-11,(51, 1)生产51-1。
如何将字符串与值结合起来?
发布于 2018-04-29 20:30:57
不,你绝对是弄错了。
(StockId, QuoteId) of (5, 11)和(51, 1)的组合是两个明显不同的值对。
它们是,而不是在创建索引条目时将组合成单个值(如您假设的511值)。它们是,两个不同的值,,因此可以在该表中共存-没有问题。
要证明这一点,只需运行以下INSERT语句:
INSERT INTO #TBL_MACD_LOOP(StockId, QuoteId, QuoteDay, QuoteClose)
VALUES (5, 11, '20180505', 42.76), (51, 1, '20180505', 128.07)即使有了唯一的索引,这个INSERT也可以正常工作(当然,假设您的表中没有这两对值中的一个)。
https://stackoverflow.com/questions/50090906
复制相似问题