2011-04-20 12 views
2

我通過SQL生成Excel報表,但知識有限。SQL:在字段上使用類似命令來設置SQL輸出中的值

我至今如下:

SELECT table.field "Column1", 
     table2.field2 "Column2", 
     table3.field3 "Column3", 
     table4.field4 "Column4", 

from table, table2 etc 

其中很多規則

我需要的是一個5列添加到基於字段的表是像一個報告的5個輸入字符串。然後我需要返回5個不在現場的輸出字符串中的1個。

實施例的僞代碼:

if table.field like one return eleven 
if table.field like two return twelve 
if table.field like three return thirteen 
if table.field like four return fourteen 
if table.field like five return fifteen 

,然後我需要在報告的第五列來填充返回值。

如果任何人可以幫助或指出我在正確的方向,它將不勝感激。如果您有任何問題,請拍攝。

謝謝。

回答

3

嘗試"SELECT .. CASE"

例如:

USE AdventureWorks2008R2; 
GO 
SELECT ProductNumber, Category = 
     CASE ProductLine 
     WHEN 'R' THEN 'Road' 
     WHEN 'M' THEN 'Mountain' 
     WHEN 'T' THEN 'Touring' 
     WHEN 'S' THEN 'Other sale items' 
     ELSE 'Not for sale' 
     END, 
    Name 
FROM Production.Product 
ORDER BY ProductNumber; 
GO 

編輯

要查找子嘗試CHARINDEX:

USE AdventureWorks2008R2; 
GO 
SELECT FirstName, LastName, TelephoneNumber, 'NewField' = 
    CASE 
      WHEN CHARINDEX('testString1', Address) > 0 THEN 'Value1' 
      WHEN CHARINDEX('testString2', Address) > 0 THEN 'Value2' 
      WHEN CHARINDEX('testString3', Address) > 0 THEN 'Value4' 
      ELSE 'Value4' 
    END 
FROM Person.vAdditionalContactInfo; 
0

更SPE cific的例子會有所幫助,但它聽起來像你需要這樣的事情:

SELECT 
    Field1, 
    Field2, 
    CASE WHEN Field1 = Field2 THEN 'X' 
     WHEN Field1 = Field2 THEN 'Y' 
     ELSE 'Unrecognized value' END AS CalculatedField 
FROM 
    Table 
+0

感謝您的幫助。我已經能夠使用該查詢來返回我需要的數據。不過,我無法將其嵌入到其他查詢中。我需要從sql返回的數據成爲我excel電子表格中的第五列。你能告訴我如何着手嗎? – Kieran 2011-04-20 15:39:25

相關問題