0

我想根据另一个字段中的数据在我的 sql 查询中创建一个字段。例如:

First Name  Last Name  Hometown      State (created column based on Hometown)
Phil        Smith      Brooklyn      NY
Bill        Jones      Manhattan     NY
Abraham     Phillips   Cleveland     OH
Michael     Davis      Cincinnati    OH
William     Brett      Queens        NY

“状态”列可以来自查找表或 if / else 语句。我不知道如何做到这一点,所以我会很感激任何帮助。

4

2 回答 2

1

这是一个“解决方案”,还有更多。

您可以创建一个名为“Person”的表,其中包含 FirstName、LastName 和 Hometown(我想您可能已经拥有该表)和一个名为“CityToState”的查找表,其中包含 City 和 State。

用适当的数据填充查找表(我敢肯定它会很大)并发出查询

select FirstName, LastName, Hometown, State 
    from Person left join CityToState on Hometown=City;

这应该为您提供正确的数据,如果查找表中不存在该城市,则该州返回 NULL。

基本上,这样做是从 Person 获取所有数据并将其与 CityToState 中的行逐行连接,其中 HomeTown 与 City 相同。“left”部分表示即使 CityToState 中没有匹配的行,它也应该返回左表(Person)中的行。

于 2012-01-11T18:31:12.500 回答
0

查找computed column您正在使用的数据库(您没有在问题中说明)。这是有关 SQL Server计算列的信息。

但是,我认为您应该使用不同的设计。如果是根据家乡查询状态,一个外键就够了,不需要复制数据。

于 2012-01-11T18:22:29.673 回答