SQL基于记录中的其他字段创建字段

时间:2012-01-11 18:20:12

标签: sql lookup calculated-field

我想根据另一个字段中的数据在我的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

“State”列可以来自查找表或if / else语句。我不知道该怎么做,所以我很感激任何帮助。

2 个答案:

答案 0 :(得分:1)

这是一个"解决方案"还有更多。

您可以创建一个名为" Person"由FirstName,LastName和Hometown组成(我假设您可能已经拥有该表)和一个名为" CityToState"的查找表。与城市和州。

使用适当的数据填写查找表(它确实非常大,我确定)并发出查询

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

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

基本上这样做是为了从Person获取所有数据并将其与CityToState中的行一行一行地连接,其中HomeTown与City相同。 "左边" part表示它应该从左表(Person)返回行,即使CityToState中没有匹配的行。

答案 1 :(得分:0)

查找您正在使用的数据库computed column(您未在问题中说明)。以下是SQL Server Computed Columns的信息。

但是,我认为你应该使用不同的设计。如果你是根据家乡查找状态,那么外键就足够了,不需要复制数据。