多个数据库,可能创建一个循环?

时间:2014-09-26 19:57:16

标签: sql-server-2008

我在下面有以下代码...查询有效,但我正在寻找一种更好的方法来搜索整个列以查找特定条件。我想我的问题是需要一个循环,我只是不确定如何执行它。

最后一行代码声明'

  

[dbIdwWhseLC]。[dbo]。[tbItemTxt]。[sTxt] like'%258912.pdf

258912.pdf

中的值
  

[IDEAUrlBot]。[dbo]。[IDEA项目跟踪器]。[文件名]

我想尝试创建一种方法,其中查询读取 sTxt 中的一个值,然后将整列与文件名进行比较。如果找到该值,则显示 sTxt ,否则,转到 sTxt 中的下一个值,然后开始搜索文件名中的每个值。< / p>

如果您需要其他信息,请与我们联系。提前谢谢。

Select  [dbIdwWhseLC].[dbo].[tbItemTxt].[nItemId]
  , [sTxtType]
  , [IDEAUrlBot].[dbo].[tbl_IDWItems].[nUrlId]
  , [IDEAUrlBot].[dbo].[tbl_Urls].[sUrl]
  , [sTxt]
  , [Filename]
  , [dbIdwWhseLC].[dbo].[tbItemTxt].[vUpdateDt]
From [dbIdwWhseLC].[dbo].[tbItemTxt]
Left Join [IDEAUrlBot].[dbo].[tbl_IDWItems] on [dbIdwWhseLC].[dbo].[tbItemTxt].[nItemid] = [IDEAUrlBot].[dbo].[tbl_IDWItems].[nItemid]
Join [IDEAUrlBot].[dbo].[tbl_Urls] on [IDEAUrlBot].[dbo].[tbl_IDWItems].[nUrlId] = [IDEAUrlBot].[dbo].[tbl_Urls].[nUrlId]
Join [IDEAUrlBot].[dbo].[IDEA Project Tracker] on [IDEAUrlBot].[dbo].[tbl_IDWItems].[nUrlId] = [IDEAUrlBot].[dbo].[IDEA Project Tracker].[UrlId]
Where [dbIdwWhseLC].[dbo].[tbItemTxt].[sTxt] like '%258912.pdf'

1 个答案:

答案 0 :(得分:0)

如果我理解正确,应该可以这样做:

select  itemTxt.[nItemId]
      , [sTxtType]
      , idwItems.[nUrlId]
      , urls.[sUrl]
      , [sTxt]
      , [Filename]
      , itemTxt.[vUpdateDt]
From    [dbIdwWhseLC].[dbo].[tbItemTxt] as itemTxt
  Left Join [IDEAUrlBot].[dbo].[tbl_IDWItems] as idwItems
      on itemTxt.[nItemid] = idwitems.[nItemid]
  Join [IDEAUrlBot].[dbo].[tbl_Urls] as urls
      on idwItems.[nUrlId] = urls.[nUrlId]
  Join [IDEAUrlBot].[dbo].[IDEA Project Tracker] projTracker
      on itemText.[nUrlId] = projTracker.[UrlId]
Where  itemTxt.[sTxt] like '%258912.pdf'  -- not sure you intend this to remain
  and  projTracker.[FileName] = itemTxt.[sTxt]

但是这很简单,以至于你要找的东西必须有一些方面,这对我来说并不清楚。

[FileName][sTxt]之间找到匹配项后,是否要停止搜索?如果您只想返回一条记录,只需将第一行更改为

即可
select top 1 itemTxt.[nItemId]

...并在末尾添加一个ORDER BY子句来控制结果的排序方式,因此哪一个是&#34; top 1&#34;。

匹配[FileName][sTxt]时是否需要使用通配符?从描述中我不清楚哪个列具有完整路径(或文件名),哪个列只有&#34; 258912.pdf&#34;,但您可以将我的最后一行更改为:< / p>

itemTxt.[sTxt] like ('%' + projTracker.[FileName])

如果您需要更复杂的内容,例如itemTxt.[sTxt]中与projTracker.[FileName]中每条记录匹配projTracker的第一条记录,请在评论中说明。

如果这些都不符合您的需求,那么您需要详细说明您所需要的内容。请在您的问题中添加更多详细信息,例如输出应该是什么样的示例或您打算如何处理它。