Использовать псевдоним столбца сервера Sql в условии где - PullRequest
3 голосов
/ 03 февраля 2012

Я пишу запрос к серверу sql с одним столбцом в виде выражения типа

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%';

Теперь выражение (имя+ age) иногда может быть очень большим, поэтому я не могу дать ему псевдоним и использовать его

Любая помощь приветствуется,

Спасибо

Ответы [ 2 ]

6 голосов
/ 03 февраля 2012

Как на счет этого ..

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%'
2 голосов
/ 03 февраля 2012

Вы можете использовать кросс аппликацию вот так

select M.name , T.Test
from myTable as M
  cross apply(select name + age) as T(Test)
where T.Test like '%b%';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...