我正在编写一个sql server查询,其中一列作为表达式,如
Select name , name + age as Test from myTable
where Test like '%b%';
现在我无法使用Test,我需要写
Select name , name + age as Test from myTable
where (name + age) like '%b%';
现在表达式(名称+年龄)有时会非常大,所以我不能给它一些别名并使用它
感谢任何帮助,
谢谢
答案 0 :(得分:6)
这种方式怎么样..
select name, Test
(
Select name , (name + age) as Test from myTable
) t
where Test like '%b%'
需要修改查询,因为它有语法错误:
所以它应该写成
select name from
(
Select name , (name + age) as Test from myTable
) t
where Test like '%b%'
答案 1 :(得分:2)
您可以像这样使用交叉申请
select M.name , T.Test
from myTable as M
cross apply(select name + age) as T(Test)
where T.Test like '%b%';