SQL Server-选择最后一个连字符后的所有字符的子字符串
技术问答
442 人阅读
|
0 人回复
|
2023-09-12
|
我正在使用产品数据库,试图从ID$ h9 t" t& m2 d
/从颜色代码组合列中提取产品颜色,其中颜色代码始终是连接字符后的最后一个字符串。问题是连接字符和产品ID颜色代码的数量可以不同。
9 D% C* F( t/ n& B四个例子:1 b, L# ^' R( N, q3 y1 r1 k
ABC123-001BCD45678-0165S-XYZ999-M2235A-S-ABC123-001在这种情况下,颜色代码65,M2235,001。选择自己列的最佳方法是什么?
1 w* ?$ h1 Z( T" g* \
7 w, H0 ]3 \% V' n- {. `2 g d8 i 解决方案:
: K* I* {$ p8 @& } 我认为以下是你想要的:0 Q V. J. l4 G8 W5 z" X
select right(col,charindex('-',reverse(col)) - 1)如果您的值中可能没有连接字符,请使用它case:
7 h0 U- q/ {" c8 v, {! I3 ^& {select (case when col like '%- then right(col,charindex('-',reverse(col)) - 1) else col end) |
|
|
|
|
|