【问题标题】:Within Where Clause criteria like wildcarded function?在 Where 子句标准中,如通配符函数?
【发布时间】:2018-01-29 06:07:02
【问题描述】:

大家下午好,

所以这是我在论坛上的第二个问题,我相信随着我对 TSQL 及其动态功能的了解越来越多,这个数字会增加。如果有人可以建议我是否使用最佳实践方法,我将不胜感激。

这是我编写的用于确定用户所在位置的函数:

    dbo.fnGetCOTLState(CURRENT_USER))

在我创建的一个视图中,我有一个 where 子句如下:

    (dbo.OfficersT.ProcessState = dbo.fnGetCOTLState(CURRENT_USER))

由于最近的更改,我需要将其更新为 a 以使其更具动态性,因此我将 =(等于)更新为如下所示:

    (dbo.OfficersT.ProcessState LIKE dbo.fnGetCOTLState(CURRENT_USER))

但是我意识到这仍然不足以提取我需要的记录,我必须使用通配符 dbo.fnGetCOTLState 函数并且来自 Microsoft 访问背景我尝试了以下语法:

    (dbo.OfficersT.ProcessState LIKE '%' & dbo.fnGetCOTLState(CURRENT_USER)) & '%'

    (dbo.OfficersT.ProcessState LIKE %dbo.fnGetCOTLState(CURRENT_USER))%

    (dbo.OfficersT.ProcessState LIKE '%dbo.fnGetCOTLState(CURRENT_USER))%'

但他们都没有工作>_

肖恩

【问题讨论】:

    标签: function tsql where wildcard


    【解决方案1】:

    您的一次尝试很接近。改变这个:

    (dbo.OfficersT.ProcessState LIKE '%' & dbo.fnGetCOTLState(CURRENT_USER)) & '%'
    

    到这里:

    dbo.OfficersT.ProcessState LIKE '%' + dbo.fnGetCOTLState(CURRENT_USER) + '%'
    

    SQL Server 中的字符串连接运算符是加号 (+),而不是与号。也许你的困惑来自于你有 VBA 背景,实际上 & 符号用于字符串连接。

    【讨论】:

    • 我知道它一定是我缺少的语法!用我所掌握的所有 VBA 知识学习 TSQL 对我来说是相当痛苦的 ~_~ 这些知识相当小众的事实并没有帮助!非常感谢您的帮助。stackoverflow 的成员再次让我免于数不清的头痛!
    猜你喜欢
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-19
    • 2011-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多