我有一个如下所示的 T-SQL
WHERE
子句,以便查找具有特定字符串的项目,并且不考虑开始/结束空格:
SELECT TOP(1) *
FROM [dbo].[Item]
WHERE LTRIM(RTRIM([ItemNumberText])) = LTRIM(RTRIM({0}))
我们如何添加到
WHERE
子句中,以便不考虑字符串中的初始零,并且不区分大小写?
例如,字符串
"00000123"
和 "123"
应被视为相同。转换为数值没有意义,因为我们可能会遇到字符串中有字母的情况。
您无需担心尾随空格,因为这些空格在
=
比较中并不重要。所以不需要RTRIM
。
要去掉您可以使用的任何前导空格或零
SUBSTRING(ItemNumberText, PATINDEX('%[^ 0]%', ItemNumberText), 8000)