下午好,
所以这是我在论坛上的第二个问题,我确信随着我对TSQL及其动态功能的更多了解,这个数字会增加。如果我能使用最佳实践方法,任何人都可以提出建议,我们将不胜感激。
这是我写的一个函数,用于确定用户所在的位置:
dbo.fnGetCOTLState(CURRENT_USER))
在我创建的一个视图中,我有一个where子句如下:
(dbo.OfficersT.ProcessState = dbo.fnGetCOTLState(CURRENT_USER))
由于最近的更改,我需要将其更新为更动态,所以我将=(等于)更新为如下所示:
(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))%'
但它们都没有工作> _<很可能我没有使用正确的单词谷歌,但我似乎找不到任何人试图在任何地方的功能使用外卡!不确定它是否可能,但如果有人能提供一些我想要达到的信息,就像往常一样,我会永远感激!!
SeanY
答案 0 :(得分:1)
你的一次尝试很接近。改变这个:
(dbo.OfficersT.ProcessState LIKE '%' & dbo.fnGetCOTLState(CURRENT_USER)) & '%'
到此:
dbo.OfficersT.ProcessState LIKE '%' + dbo.fnGetCOTLState(CURRENT_USER) + '%'
SQL Server中的字符串连接运算符是加号(+
),而不是ampsersand。也许这种混乱来自于你拥有VBA背景,其中实际上使用了&符号进行字符串连接。