回答

收藏

使用Replace()选择

技术问答 技术问答 162 人阅读 | 0 人回复 | 2023-09-14

我有一个名字和地址表,包括邮政编码列。我想从邮政编码中删除空格,然后选择任何与特定模式匹配的空格。SQL Server 2005的T-: Z) C+ O0 Y9 ~
SQL尝试这种方法(简化):
9 |. s9 w+ s5 USELECT Replace(Postcode, ,''''' AS PFROM ContactsWHERE P LIKE 'NW101%'但我犯了以下错误;
* r$ H7 i3 F0 Q( \% @Msg 207,Level 16,State 1,Line 3Invalid column name 'P'.如果删除WHERE子句,我会得到一个不含空间的邮政编码列表,这是我要搜索的列表。我该怎么办?我做错了什么?
6 N( ?6 Y. i4 S3 e8 Q                                                               
$ h4 r% v5 d# u8 V8 E    解决方案:                                                               
3 {, |( v. i* X( K  N6 r/ G+ H                                                                不要P在WHERE别名()直接用于子句中。7 A3 u: r3 G2 l1 d6 j3 @
您可以REPLACE在WHERE同样的逻辑在句子中再次使用:
) g$ j0 \8 r) Y8 A3 USELECT Replace(Postcode, ,''''' AS PFROM ContactsWHERE Replace(Postcode, ,''''' LIKE 'NW101%'或使用别名答案中提到的别名查询。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则