【发布时间】:2017-08-01 16:37:27
【问题描述】:
我有一些地址数据需要解析。大多数地址信息都以对我有用的方式出现,除了楼层数据。
对于我以不同方式获得的楼层数据,我可能会得到以下格式:
“123 Main Street Floor 2”或“123 Main Street 2nd Floor”
如果我使用 case...when 语句来解析我的数据,我如何获取它来确定何时获取之后的数字或之前的数字?最终我想要“Floor 2”例如 1 和“2nd Floor”例如 2。
这是我目前使用的sql。
CASE WHEN (addr LIKE 'floor%' and addr LIKE '%[0-9]%' ) THEN SUBSTRING(addr, CHARINDEX('Floor ', addr),
LEN(addr))
【问题讨论】:
-
这个
123 Main Street first floor怎么样 -
我建议在用户界面解决这个问题。否则数量或排列组合太大。
-
是的,在输入时解析它,或者解析当前数据集并将结果存储在表中。
-
我并不担心获得所有组合,只是我上面列出的示例。其他实例的数量太少,无需担心。
标签: sql sql-server tsql ssms