我有一个类似于以下4444-4444-TestingItem1的字段。 我是否有可能将该字段提取到4444-4444。 如果是这样我怎么做?我将在SSRS中使用什么功能。 请注意,在第一个破折号之前和第二个破折号之前,它可以是任意数量的字符。
如何在SSRS中实现这一目标?
答案 0 :(得分:3)
您可以结合使用CHARINDEX
和SUBSTRING
:
SELECT SUBSTRING(field, 1, CHARINDEX('-', field, CHARINDEX('-', field)+1) - 1)
FROM yourTable
答案 1 :(得分:3)
在SSRS中,您可以使用LEFT
和InStrRev
函数:
=LEFT(Fields!YourField.Value,InStrRev(Fields!YourField.Value,"-")-1)
如果有帮助,请告诉我。
答案 2 :(得分:1)
pat1:查找char的第一个位置是非数字或" - "
pat2:找到"的第一个位置 - "并按照非数字
SELECT a.s,LEFT(a.s,PATINDEX('%[^0-9-]%',a.s)-1) AS pat1
,LEFT(a.s,PATINDEX('%[-][^0-9]%',a.s)-1) AS pat2
FROM (VALUES('4444-4444-TestingItem1')) a(s)
s pat1 pat2 ---------------------- ---------------------- ---------------------- 4444-4444-TestingItem1 4444-4444- 4444-4444
答案 3 :(得分:1)
=LEFT(Fields!FIELD.Value, InStr(InStr(Fields!FIELD.Value, "-") +1, Fields!FIELD.Value, "-") -1)