【问题标题】:Count on condition SQL Server依靠条件 SQL Server
【发布时间】:2012-11-06 16:32:47
【问题描述】:

我有一个表格,其中包含一些商业短文本,例如“PVT,LTD”等,如图所示。

其次,我们每次都会收到来自另一方的新头衔,例如“Taha Zubair”和“Taha PVT Ltd”。

现在我需要找到如果标题包含关键字,从数据库扫描后我只需要返回计数。如果计数为零 (0) 表示标题很简单,如“Taha Zubair”,否则返回 > 1,如果标题类似于“Taha PVT Ltd”或“Taha Trust”

图片:http://social.msdn.microsoft.com/Forums/getfile/195838

此外,我需要在存储过程中进行调整,在编程应用程序中使用整个查询(内联查询)会影响性能。

如果您有任何问题,请毫不犹豫地提出......

【问题讨论】:

  • 不好的问题 - 太具体了。

标签: c# .net sql sql-server oracle


【解决方案1】:

作为函数

Create Function F_GetNonIndividual(@SearchStr nVarchar(100)) Returns int
as  -- use Select dbo.F_GetNonIndividual('Abc Solutions PVT LTD')
begin
    Declare @Result int
    Select @Result = Count(*) 
    from NonIndividualTitle
    where @SearchStr Like ('%'+NonIndivTitle+'%')
    Return @Result
end 

作为过程

Create Procedure P_GetNonIndividual(@SearchStr nVarchar(100))
as  -- use EXEC P_GetNonIndividual 'Abc Solutions PVT LTD'
begin
    Select Count(*) 
    from NonIndividualTitle
    where @SearchStr Like ('%'+NonIndivTitle+'%')
end 

作为没有参数的过程

Create Procedure P_GetNonIndividualOut(@SearchStr nVarchar(100),  @OutValue int out)
as  
begin
    Select @OutValue=Count(*) 
    from NonIndividualTitle
    where @SearchStr Like ('%'+NonIndivTitle+'%')
end 

带有查询示例

Declare @OutValue int
exec P_GetNonIndividualOut 'Abc Solutions PVT LTD',@OutValue out
print @OutValue

【讨论】:

  • 我对一切都很快。您的回答仍然不能完美地涵盖问题。
  • @bummi 您非常了解我的问题并解决了它,这是一种优化方式,我不知道为什么其他人说它太具体了。非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-26
  • 1970-01-01
  • 1970-01-01
  • 2011-07-29
  • 1970-01-01
  • 2012-09-17
相关资源
最近更新 更多