2016-05-30 2 views
0

Привет У меня есть две колонки, которые я связываю с A & B, это делается для определения идентификатора клиента. Мне нужно тогда сделать оператор case на этом вычисленном поле. Можно ли это сделать за один раз?SQL - Расчетная база полей на вычисленном поле?

Column A 
Column B 
Column C = Column A & Column B 
Column D = Case When (column C) = 001-002 then XXXX 

Столбец D не работает. Вопрос в том, является ли столбец C вычисленным полем, могу ли я затем вычислить столбец C, чтобы дать столбец D в одном запросе?

Благодаря

ответ

2

Вы должны сделать это таким образом ... в вычисляемых столбцах не собирается помочь в дальнейших расчетах

Column A 
Column B 
Column C = Column A & Column B 
Column D = Case When (Column A & Column B) = 001-002 then XXXX 
0

Я думаю, логика вы использовали, должны работать, то проблема, которую я вижу, может быть в «001-002». Вы сравниваете столбец D с вычитаемым значением от 001 до 002? Если нет, тогда вы должны заключить это в одинарные кавычки.

А также, согласно вашей логике, написанной в T-SQL, вам не нужно вычислить столбец С. Таким образом, решение может быть:

Column A 
Column B 
--Column C = Column A & Column B --commented out 
Column D = Case When (Column A+Column B) = '001-002' then XXXX END 

Вы также можете использовать ELSE состояние внутри корпуса Expression. Кроме того, я предполагаю, что столбцы A и B имеют тип данных String (например, CHAR/VARCHAR/NVARCHAR).

Смежные вопросы