我正在使用续集服务器管理Studio 2014,我想知道如何解析选择查询的无关数据。我不希望修改数据,只是想从SSRS数据源中获取所需的信息,以使查询自动化。该查询看起来像下面列出的内容。
下面列出了注释字段中值的示例 “基于PO#105680-Thomas Test GRPO接收验证查询测试”
理想情况下,我只需要值'105680',因此可以将其用作查找参考。任何帮助将一如既往。
SELECT
[DocEntry]
,[DocNum]
,[DocType]
,[CANCELED]
,[Comments]
FROM [Billy].[dbo].[OPDN]
答案 0 :(得分:2)
您可以使用CHARINDEX在文本中找到PO#,然后使用SUBSTRING解析出该数字,只要格式是一致的即可。
;WITH TEMP AS (SELECT 'Based on PO #105680 - Thomas Test GRPO Reciept Validation query test' AS comment )
SELECT comment,
CASE WHEN TEMP.comment LIKE '%PO #%' THEN SUBSTRING(TEMP.comment, CHARINDEX('PO #', TEMP.comment) + 4, CHARINDEX('PO #', TEMP.comment, CHARINDEX(' ', TEMP.comment) + 1) - 4) END AS PO_NUM
FROM TEMP
您的查询将类似于
SELECT
[DocEntry]
,[DocNum]
,[DocType]
,[CANCELED]
,[Comments]
,CASE WHEN Comments LIKE '%PO #%' THEN SUBSTRING(Comments, CHARINDEX('PO #', Comments) + 4, CHARINDEX('PO #', Comments, CHARINDEX(' ', Comments) + 1) - 4) END AS PO_NUM
FROM [Billy].[dbo].[OPDN]