【问题标题】:Select an output column to be used for LIKE选择要用于 LIKE 的输出列
【发布时间】:2014-02-24 06:31:56
【问题描述】:

我想对作为我的 CONVERT 输出的列使用 LIKE,就像下面的代码一样。 但它不起作用,因为我选择的列不属于我一直在使用的视图。我有办法这样做吗?还是我真的应该创建一个新视图?

SELECT 
[DESCRIPTION],
CONVERT(varchar, CAST([ITEM VALUE]*[QTY] AS money), 1) AS [TOTAL AMOUNT],
FROM vwItemList
WHERE [TOTAL AMOUNT] LIKE '%' + @targetItem + '%'

【问题讨论】:

    标签: database tsql select sql-like


    【解决方案1】:

    您必须使用子查询或重复它,因为您不能在 WHERE-clause 中引用别名

    SELECT 
    [DESCRIPTION],
    CONVERT(varchar, CAST([ITEM VALUE]*[QTY] AS money), 1) AS [TOTAL AMOUNT],
    FROM vwItemList
    WHERE CONVERT(varchar, CAST([ITEM VALUE]*[QTY] AS money), 1) LIKE '%' + @targetItem + '%'
    

    另一个选项,CTE,类似于子查询:

    WITH CTE AS
    (
        SELECT [Description], 
               CONVERT(VARCHAR, Cast([Item value] * [Qty] AS MONEY), 1) AS [TOTAL AMOUNT], 
        FROM   Vwitemlist 
    )
    SELECT [Description],
           [TOTAL AMOUNT]
    FROM   CTE 
    WHERE  [TOTAL AMOUNT] LIKE '%' + @targetItem + '%' 
    

    【讨论】:

      猜你喜欢
      • 2010-11-26
      • 2012-03-19
      • 2017-05-18
      • 2019-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多