【发布时间】:2015-02-10 10:44:03
【问题描述】:
我一直在阅读 PATINDEX,试图了解是什么以及为什么。我了解使用通配符时,它将返回一个关于该字符出现/开始位置的 INT。所以:
SELECT PATINDEX('%b%', '123b') -- returns 4
但是,我正在寻找是否有人可以解释您为什么会以简单(ish)的方式使用它的原因。我已经阅读了其他一些论坛,但说实话并没有深入了解。
【问题讨论】:
-
用途很多,一般与其他功能结合使用。您可以使用 Patindex('%[0-9]%', string)、Stuff 和 while 子句的组合来帮助从字符串中去除数字。使用它有很多理由,当您遇到需要使用它来解决的问题时,也许您会更好地理解它
-
假设您想从某个字符出现的位置剪切一个字符串。
SELECT LEFT('123x45',PATINDEX('%x%','123x45')-1)您将 x 所在的位置传递给 LEFT 函数,以便它知道“剪切”的位置 -
感谢 cmets,它帮助我理解了 PATINDEX 函数是如何工作的 Mihai。克里斯蒂安·巴伦(Christian Barron),感谢您的解释,这有助于我阅读和理解我目前正在看的剧本。
标签: sql sql-server tsql syntax