1

我有一个由数字字母和破折号组成的主键。例如 7223-03-PINK

随着新记录的创建,第一个数字块 (7223) 将继续增加 +1。而第 2 和第 3 块 (03-PINK) 将保持不变。

随着时间的推移,记录被添加到表中,pkey 的第一个块最终将变为 5 位数字,而不是当前的 4 位数字。

我想选择 pkey 的第一个块。我不想用

SUBSTRING(pkey,1, 4 )

因为最终我将不得不将此公式更改为

子串(pkey,1, 5)。

SQL 中是否有任何内容允许我只选择第一个标记?也许相当于 FOR /F "tokens= 1 ".... 在 CMD 中?

我正在尝试在 SQL Server 2008 R2 中执行此操作

4

1 回答 1

0

查看它的位置并阅读它;

  SUBSTRING(pkey, 1, CHARINDEX('-', pkey, 1) - 1)

您也可以考虑在其自己的整数(身份?)列中包含前导整数部分。

于 2013-07-22T15:15:40.993 回答