回答

收藏

使用Replace()选择

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

我有一个名字和地址表,包括邮政编码列。我想从邮政编码中删除空格,然后选择任何与特定模式匹配的空格。SQL Server 2005的T-! c# C3 W; M; I3 c* r8 `
SQL尝试这种方法(简化):
9 H, a4 @, Y$ I" M; `2 p% P; W9 kSELECT Replace(Postcode, ,''''' AS PFROM ContactsWHERE P LIKE 'NW101%'但我犯了以下错误;
# W8 ~- G; F" b' Q6 |5 x1 V4 H& U% M7 vMsg 207,Level 16,State 1,Line 3Invalid column name 'P'.如果删除WHERE子句,我会得到一个不含空间的邮政编码列表,这是我要搜索的列表。我该怎么办?我做错了什么?
# o# _9 p, i5 l( h                                                                : b/ t% I! _  r  k
    解决方案:                                                               
! ^& u+ ~% F6 x3 {" V- Y                                                                不要P在WHERE别名()直接用于子句中。
: V; ]0 x% p& z您可以REPLACE在WHERE同样的逻辑在句子中再次使用:" I; U2 y3 w" U8 K, X
SELECT Replace(Postcode, ,''''' AS PFROM ContactsWHERE Replace(Postcode, ,''''' LIKE 'NW101%'或使用别名答案中提到的别名查询。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则