我需要为名为 AddrZip 的列运行一个简单的选择语句,以显示列中第一个空格之后包含“1/2”的所有记录。在 Access 2007 中它将是:
**Left([Names],InStr(1,[Names]," ")-1)
,但在 SQL 2005 中无法找到如何执行此操作。所有帮助将不胜感激。
问问题
6255 次
2 回答
1
首先,查找带有 的记录' '
:
CHARINDEX(' ', [AddrZip]) > 0
然后查找在'1/2'
_' '
CHARINDEX('1/2', [AddrZip], CHARINDEX(' ', [AddrZip])) > 0
SELECT *
FROM ( SELECT *
FROM [Addresses]
WHERE CHARINDEX(' ', [AddrZip]) > 0
) x
WHERE CHARINDEX('1/2', [x].[AddrZip], CHARINDEX(' ', [AddrZip])) > 0
这个“简化”版本可能有效:
SELECT *
FROM [Addresses]
WHERE CHARINDEX(' ', [AddrZip]) > 0
AND CHARINDEX('1/2', [x].[AddrZip], CHARINDEX(' ', [AddrZip])) > 0
如果要查找前面紧跟a 的出现'1/2'
, 其中a是字符串中的第一个空格,请使用以下代码:' '
' '
SELECT *
FROM [Addresses]
WHERE CHARINDEX(' ', [AddrZip]) > 0
AND CHARINDEX(' ', [AddrZip]) = CHARINDEX(' 1/2', [x].[AddrZip])
LIKE
尽可能避免使用操作员。它们速度慢是出了名的。
于 2010-10-22T16:52:46.653 回答
0
尝试这个 -
select * from table where addrZip like '%\ 1/2%' escape '\'
于 2010-10-22T16:49:08.347 回答