Sql Query With Select и IF - PullRequest
       12

Sql Query With Select и IF

0 голосов
/ 19 февраля 2010

вот мое описание таблицы:

Название таблицы: Заказы

Столбцы: ID, НЕТ, Количество, База, Код

Сначала мой запрос должен проверить значение кода, если значение кода равно 'B', тогда ВЫХОДНОЕ ЗНАЧЕНИЕ должно быть Code + Base, если это не 'B', тогда ВЫХОДНОЕ ЗНАЧЕНИЕ должно быть Код + Количество

полученные строки снова будут отфильтрованы с помощью выражения where, где ID = '' и количество = ''

Как мне сформировать этот сложный запрос, есть идеи? ...

Ответы [ 3 ]

3 голосов
/ 19 февраля 2010

Модифицированный ответ

Что-то беспокоило меня в моем исходном сообщении (см. Ниже, но не используется), поэтому я вернулся, чтобы проверить.Если код - «B» (следовательно, varchar), а количество - целое число, то SQL не позволит вам добавить их по понятным причинам и не будет выполнять неявное преобразование для вас (по крайней мере, для меня это не было сделано).Поэтому мне пришлось конвертировать количество в варчар, чтобы иметь возможность использовать его.

Посмотрите на следующий рабочий код, построенный на SQL Server 2008

DECLARE @MyTable TABLE
(
    ID int identity (1, 1),
    Num int,
    Quantity int,
    Base varchar (1),
    Code varchar (1)
)

INSERT INTO @MyTable VALUES 
  (1, 1, 'a', 'A')
, (2, 2, 'b', 'B')
, (3, 3, 'c', 'C')
, (4, 4, 'd', 'D')
, (5, 5, 'e', 'E')

SELECT * FROM @MyTable

SELECT 
    CASE WHEN Code = 'B' THEN Code+Base 
    ELSE Code+CONVERT (VarChar, Quantity) 
    END AS OutputValue
FROM @MyTable

Оригинальный ответ (не используйте)

попробуйте следующее

SELECT CASE WHEN Code = 'B' THEN Code+Base ELSE Code+Quantity END AS OutputValue
FROM MyTable
WHERE ID = @Id
and Quantity = @Quantity
0 голосов
/ 19 февраля 2010
SELECT
(
   CASE Code
      WHEN CODE = 'B' THEN Code+Base
      ELSE Code+Quantity
   END
) AS OutputValue
FROM Orders
WHERE ID  = '' AND Quantity=''
0 голосов
/ 19 февраля 2010
SELECT CASE Code WHEN 'B' THEN Code + Base ELSE Code + Quantity END As OutputValue
FROM Orders
WHERE ID = @id AND Quantity = @quantity
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...