在 Where 子句标准中,如通配符函数?
Within Where Clause criteria like wildcarded function?
大家下午好,
这是我在论坛上的第二个问题,我相信随着我对 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 access 后台我尝试了以下语法:
(dbo.OfficersT.ProcessState LIKE '%' & dbo.fnGetCOTLState(CURRENT_USER)) & '%'
(dbo.OfficersT.ProcessState LIKE %dbo.fnGetCOTLState(CURRENT_USER))%
(dbo.OfficersT.ProcessState LIKE '%dbo.fnGetCOTLState(CURRENT_USER))%'
但其中 none 起作用了 >_< 很可能我没有使用正确的词来 google,但我似乎找不到任何人试图使用 wild卡在任何地方的功能!不确定这是否可能,但如果有人能提供一些信息来说明我正在努力实现的目标,我将一如既往地感激不尽!!
肖恩
您的一次尝试接近成功。改变这个:
(dbo.OfficersT.ProcessState LIKE '%' & dbo.fnGetCOTLState(CURRENT_USER)) & '%'
对此:
dbo.OfficersT.ProcessState LIKE '%' + dbo.fnGetCOTLState(CURRENT_USER) + '%'
SQL 服务器中的字符串连接运算符是加号 (+
),而不是 &。也许混淆来自您的 VBA 背景,其中 & 符号实际上用于字符串连接。
大家下午好,
这是我在论坛上的第二个问题,我相信随着我对 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 access 后台我尝试了以下语法:
(dbo.OfficersT.ProcessState LIKE '%' & dbo.fnGetCOTLState(CURRENT_USER)) & '%'
(dbo.OfficersT.ProcessState LIKE %dbo.fnGetCOTLState(CURRENT_USER))%
(dbo.OfficersT.ProcessState LIKE '%dbo.fnGetCOTLState(CURRENT_USER))%'
但其中 none 起作用了 >_< 很可能我没有使用正确的词来 google,但我似乎找不到任何人试图使用 wild卡在任何地方的功能!不确定这是否可能,但如果有人能提供一些信息来说明我正在努力实现的目标,我将一如既往地感激不尽!!
肖恩
您的一次尝试接近成功。改变这个:
(dbo.OfficersT.ProcessState LIKE '%' & dbo.fnGetCOTLState(CURRENT_USER)) & '%'
对此:
dbo.OfficersT.ProcessState LIKE '%' + dbo.fnGetCOTLState(CURRENT_USER) + '%'
SQL 服务器中的字符串连接运算符是加号 (+
),而不是 &。也许混淆来自您的 VBA 背景,其中 & 符号实际上用于字符串连接。