這裏是我的表說明:SQL查詢用SELECT和IF
表名稱:訂單
列:ID,NO,數量,基地代碼
首先我的查詢應該檢查的價值代碼,如果代碼的值是'B',那麼OUTPUT VALUE應該是代碼+ Base,如果它不是'B',那麼OUTPUT VALUE應該是代碼+數量
再次獲得的行將通過where子句過濾其中ID =''和數量=''
我如何能形成這種複雜的查詢,任何想法?...
這裏是我的表說明:SQL查詢用SELECT和IF
表名稱:訂單
列:ID,NO,數量,基地代碼
首先我的查詢應該檢查的價值代碼,如果代碼的值是'B',那麼OUTPUT VALUE應該是代碼+ Base,如果它不是'B',那麼OUTPUT VALUE應該是代碼+數量
再次獲得的行將通過where子句過濾其中ID =''和數量=''
我如何能形成這種複雜的查詢,任何想法?...
修正的應答
事情困擾我,我原來的職位(見下文,但不使用),所以我回去檢查。如果代碼是'B'(因此是一個varchar)並且Quantity是一個整數,那麼SQL不會因爲顯而易見的原因而添加它們,並且不會爲您執行隱式轉換(至少它不會爲我執行此操作)。所以我必須將Quantity轉換爲varchar才能使用它。
看建立在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
SELECT CASE Code WHEN 'B' THEN Code + Base ELSE Code + Quantity END As OutputValue
FROM Orders
WHERE ID = @id AND Quantity = @quantity
SELECT
(
CASE Code
WHEN CODE = 'B' THEN Code+Base
ELSE Code+Quantity
END
) AS OutputValue
FROM Orders
WHERE ID = '' AND Quantity=''
比ks很多..它的工作.. – msbyuva 2010-02-18 22:52:01