SQL使用Union显示基于比较的行值

时间:2011-03-18 19:23:05

标签: sql-server-2008

我有一个带有标记为州的列的表。我想从该表中选择所有行(和列)并显示它们的信息。但是,我希望状态列显示“CA”(如果它们来自加利福尼亚州)和“Not from CA”(如果它们来自其他任何地方)。交换值的命令是什么。

这是我到目前为止所做的,我只需要交换命令。甚至不确定要在Google上搜索什么,所以我希望能在这里找到答案。

SELECT VendorName, VendorState
FROM Vendors
WHERE VendorState='CA'
UNION
SELECT VendorName, VendorState
FROM Vendors
WHERE VendorState<>'CA'
ORDER BY VendorName

我通过SQLMenaces查询格式得到了我想要的具体答案,因此他接受了他的回答。但这是我想要的任何可能偶然发现这个问题的人。

SELECT VendorName, VendorState
FROM Vendors
WHERE VendorState='CA'
UNION
SELECT VendorName, 'Outside CA'
FROM Vendors
WHERE VendorState<>'CA'
ORDER BY VendorName

1 个答案:

答案 0 :(得分:1)

SELECT VendorName, 
CASE VendorState WHEN 'CA' 
THEN 'CA' ELSE 'Not from CA' END VendorState
FROM Vendors 

只是为了向您展示如何交换查询,您可以

SELECT 'Whatever here' as VendorState
FROM Vendors