【发布时间】:2013-04-09 23:11:04
【问题描述】:
我编写了一个查询,用于从不同的表中选择一些结果,并使用 union all。 在from之后你可以使用where。 在那我想使用我在查询中“制作”的列。 我该怎么做?
例子
SELECT
[column1] AS 'K1',
ISNULL([column2], 'else') + ' ' + ISNULL([column3], 'else') AS 'K2'
FROM
[table]
FULL JOIN
[table] ON A.Name = C.AccountIdName
WHERE
A.Name IS NOT NULL
AND K1 IS NOT NULL
是否可以将 K1 带入其中? 还是有其他选择?
更新:新示例
SELECT
[column1] AS 'K1',
ISNULL([column2], 'else') + ' ' + ISNULL([column3], 'else') AS 'K2'
FROM
[table]
FULL JOIN
[table] ON A.Name = C.AccountIdName
WHERE
A.Name IS NOT NULL
**AND K1 IS NOT NULL
AND K3 IS NOT NULL**
UNION ALL
SELECT
[column1] AS 'K1',
ISNULL([column2], 'else') + ' ' + ISNULL([column3], 'else') AS 'K2'
FROM
[table]
FULL JOIN
[table] ON A.Name = C.AccountIdName
WHERE
A.Name IS NOT NULL
**AND K2 IS NOT NULL
AND K4 IS NOT NULL**
如你所见,我想要在第一个选择 K1 en K3 中,在第二个中我想要 K2 end K4
我希望你也能解决这个问题,这是一个很好的解决方案。
SELECT * FROM
(
SELECT [column1] as 'K1' , ISNULL([column2], 'else') + ' ' + ISNULL([column3], 'else') as 'K2'
FROM [table] full join [table] on A.Name = C.AccountIdName where A.Name IS NOT NULL
)
res WHERE res.K1 IS NOT NULL
【问题讨论】:
-
欢迎使用 StackOverflow:如果您发布代码、XML 或数据示例,请在文本编辑器中突出显示这些行并单击“代码示例”按钮 (
{ }) 在编辑器工具栏上很好地格式化和语法突出显示它 -
tnx 告诉我下次我会使用它
-
请不要在您的问题中添加“已解决”。我们已经知道您得到了一个对您有帮助的答案,这就是“接受的答案”复选框的用途。
-
好的,感谢您为我更改它..
标签: sql sql-server-2012 select-query