我有一张股票报价表和日期:
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)
和(5, 11)
的{{1}}都生成(51, 1)
的索引。
我的解决方案是添加" - "在StockId和QuoteId之间。
现在511
生成(5, 11)
,5-11
生成(51, 1)
。
如何将字符串与值组合?
答案 0 :(得分:1)
不,你绝对是错误。
(StockId, QuoteId)
(5, 11)
和(51, 1)
的{{1}}组合是两个明显不同的值对。
在创建索引条目时,它们 NOT combined 成为单个值(假设为511
)。那些是两个不同的值,因此可以在该表中共存 - 没问题。
要证明这一点 - 只需运行此INSERT
声明:
INSERT INTO #TBL_MACD_LOOP(StockId, QuoteId, QuoteDay, QuoteClose)
VALUES (5, 11, '20180505', 42.76), (51, 1, '20180505', 128.07)
即使您使用了唯一的索引,这个INSERT
也可以毫无问题地工作(假设您的表格中没有这两对值中的一对),