Я использую SqlServer 2005, и у меня есть столбец, который я назвал.
Запрос - что-то как:
SELECT id, CASE WHEN <snip extensive column definition> END AS myAlias
FROM myTable
WHERE myAlias IS NOT NULL
Однако это дает мне ошибку:
"Недопустимое имя столбца 'myAlias'".
Существует ли способ обойти это? В прошлом я включал определение столбца или в, ГДЕ или раздел НАЛИЧИЯ, но это было главным образом просто, КОЛИЧЕСТВО IE (*) или что бы то ни было. Я могу включать целое определение столбца в этот специальный запрос, но если бы по некоторым причинам я должен был сделать это в производственном запросе, то я предпочел бы иметь определение столбца только однажды, таким образом, я не должен обновить и (и забыть делать тот в какой-то момент),
Вы не можете ссылаться на псевдонимы в предложении where, подобное этому ... вам либо нужно продублировать CASE в WHERE, либо вы можете использовать такой подзапрос:
SELECT id, myAlias
FROM
(
SELECT id, CASE WHEN <snip extensive column definition> END AS myAlias
FROM myTable
) data
WHERE myAlias IS NOT NULL
Использование CTE также является вариантом:
;with cte (id, myAlias)
as (select id, case when <snip extensive column definition> end as myAlias
from myTable)
select id, myAlias
from cte
where myAlias is not null
Поместите тот же CASE
оператор в WHERE
предложение:
SELECT id, CASE WHEN <snip extensive column definition> END AS myAlias
FROM myTable
WHERE CASE WHEN <snip extensive column definition> END IS NOT NULL
EDIT
Другой вариант - вложить запрос:
SELECT id, myAlias
FROM (
SELECT id, CASE WHEN <snip extensive column definition> END AS myAlias
FROM myTable
) AS subTable
WHERE myAlias IS NOT NULL
(Edit: removed HAVING
option, as that was incorrect (thanks @OMG Ponies))
Установить границу метки можно с помощью соответствующего свойства CALayer:
#import <QuartzCore/QuartzCore.h>
myLabel.layer.borderColor = [UIColor greenColor].CGColor;
myLabel.layer.borderWidth = 3.0;
Swift 5:
myLabel.layer.borderColor = UIColor.darkGray.cgColor;
myLabel.layer.borderWidth = 3.0;
-121-2015739- введите в подсказке matlab:
>> help format
Я думаю, что нужно выполнить команду "FORMAT LONG" перед выполнением сценария.
Можно также распечатать матрицу с произвольной точностью, используя fprintf в цикле.
-121--4859361-поместить дело в где. SQL Server будет достаточно умен, чтобы просто оценить его один раз, так что вы на самом деле не дублируете код:
SELECT id, CASE WHEN <snip extensive column definition> END AS myAlias
FROM myTable
WHERE CASE WHEN <snip extensive column definition> END IS NOT NULL
вы можете обернуть его в производную таблицу:
SELECT dt.id, dt.myAlias
FROM (
SELECT id, CASE WHEN <snip extensive column definition> END AS myAlias
FROM myTable
) dt
WHERE dt.myAlias IS NOT NULL
Однако я стараюсь избегать производных таблиц без ограничения WHERE. Вы можете попробовать проверить, влияет ли это на производительность.