查询包含特定范围的变量

时间:2017-12-21 17:38:11

标签: sql sql-server tsql

这可能会有些混乱,所以我会尝试详细说明。我需要根据某个变量查询几个月的日常记录。在这种情况下是文件名。有几个失败的文件被重新运行,重新运行将包括新文件名中的原始作业运行编号。例如:

运行4145失败。文件名"ORIGINALFILENAME" 运行4150文件名将显示为"YYYYMMDDHHMMSS_4145_ORIGINALFILENAME"

在几个月的过程中,有50多个失败的文件。有没有办法构建我的where语句,以便它将返回失败的运行(通过status_code = 'FAILURE'轻松完成)以及重新运行?我想象where file_name like '%_(select run_number where status_code = 'FAILURE')_ORIGINALFILENAME

之类的东西

2 个答案:

答案 0 :(得分:0)

%字符适用于任何或没有字符。所以

ConfigResolver

将适用于失败和重播

答案 1 :(得分:0)

此脚本返回包含 status_code ='FAILURE'的所有元组,其中 file_name 包含子字符串“_ORIGINALFILENAME”。

  SELECT file_name FROM tblYourTable
    WHERE status_code = 'FAILURE'
    AND file_name LIKE '%[_ORIGINALFILENAME]%'

但......再看看,要求似乎是:“ ...语句,它将返回两个失败的运行(通过status_code ='FAILURE'轻松完成)以及重新运行... “如果我理解正确意味着调整谓词以返回 场景,即:

  SELECT file_name FROM tblYourTable
    WHERE status_code = 'FAILURE'
    OR file_name LIKE '%[_ORIGINALFILENAME]%'