【问题标题】:SQL View CreationSQL 视图创建
【发布时间】:2010-04-19 16:41:44
【问题描述】:

我有两张桌子

Table FOO 
FooUniqueID| Year| Name| Worth|
---------------------------
1           2008   Bob    23.00 
2           2009   Bob    40200

Table Bar 
BarUniqueID | Name | Value
-----------------------
 1aBc         Year   2009

我想创建一个视图。 这将从 FOO 中选择年份相等的所有内容

select value from Bar where name = year

不使用子查询。

谢谢你

【问题讨论】:

标签: sql sql-server-2008 views


【解决方案1】:

这取决于正在运行的程序类型。我相信这适用于某些 SQL 风格。

select value from FOO, Bar where FOO.year = Bar.year

【讨论】:

    【解决方案2】:

    我认为单独为此创建一个VIEW 没有什么意义,这是一个微不足道的连接:

    SELECT FOO.*
    FROM Bar
    JOIN FOO ON FOO.Year=Bar.Value
    WHERE Bar.Name='Year';
    

    【讨论】:

    • 视图包含更多数据,但我将问题限制在底层问题上。我需要创建一个从另一个表中获取配置值的视图。
    • +1,那还是小菜一碟,注意嵌套视图太多,性能会下降
    【解决方案3】:
    create view baz as 
    select f.FooUniqueID, f.Year, f.Name as FooName, f.Worth,
        b.BarUniqueID, b.Name as BarName, b.Value 
    from foo f 
    inner join bar b on f.Year = b.Value and b.name = 'Year'
    

    【讨论】:

      【解决方案4】:
      SELECT 
        FooUniqueID, Year, Name, Worth
      FROM
        FOO
      JOIN
        BAR on FOO.Year = BAR.Value
      WHERE
        BAR.Name = 'Year' 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-06
        • 2015-01-26
        • 2021-05-24
        • 1970-01-01
        相关资源
        最近更新 更多