首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一列包含City和State和just City之间的混合。我已经分离了City和State,但是如何保持正确的City字段呢?

一列包含City和State和just City之间的混合。我已经分离了City和State,但是如何保持正确的City字段呢?
EN

Stack Overflow用户
提问于 2019-10-01 00:36:26
回答 1查看 44关注 0票数 0

在我的表中,我有两列需要修复。第一列是" City“,它既包含City和State,也包含City。第二列是"State“,其中混合了Nulls和State。需要注意的是,当Ciy列同时包含City和State时,"State“列为Null。

代码语言:javascript
复制
NEW YORK,NY | NULL
NEW YORK    | NY

到目前为止,我已经编写了分隔" City“列的代码;但是,当City列不包含state时,它将变为‘’,然后state列将用"City”值填充。下面的第二列是"City_Split“和"State2”。

代码语言:javascript
复制
NEW YORK,NY | NULL | NEW YORK | NY
NEW YORK    | NY   | ''       | NEW YORK

到目前为止,我已经尝试过case语句,但我只是感到困惑。

我想要:

代码语言:javascript
复制
NEW YORK,NY | NULL | NEW YORK | NY
NEW YORK    | NY   | NEW YORK | NY
代码语言:javascript
复制
SELECT
    CITY, CPS,
    SUBSTRING(CITY, 0, CHARINDEX(',', CITY, - 1)) AS CITY_SPLIT,
    SUBSTRING(CITY, CHARINDEX(',', CITY) + 1, LEN(CITY)) AS STATE2
FROM srcFlatFile.dbo.SWIFT AS SWIFT
WHERE (ISO_COUNTRY_CODE = 'US')

如果我的问题问得不够清楚,我道歉,因为我是编程新手。

EN

回答 1

Stack Overflow用户

发布于 2019-10-01 00:51:22

代码语言:javascript
复制
with data as (<your query>)
update data set city = city_split, state = state2
where charindex(',', city) > 0

您需要有额外的条件,将更新限制为需要更新的行。因为这些表达式要求存在逗号。

这种方法是按原样使用select的一种简单方法。但它真的可以(也应该吗?)在没有CTE的情况下这样做:

代码语言:javascript
复制
update srcFlatFile.dbo.SWIFT
set city = substring(city, 1, charindex(',', city) - 1),
       state = substring(city, charindex(',', city) + 1, 2)
where charindex(',', city) > 0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58171943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档