是否有方法使用IN运算符将值与IN语句中的每个值相关联?
例如:
SELECT Foo FROM MyTable WHERE Item IN('XYZ' AS 'BOB', 'QRM' AS 'DAVID')
我想基本上将别名与返回的响应相关联。
回复示例:
BOB | 23
DAVID | 3
答案 0 :(得分:1)
不,您不会使用IN
执行此操作。您可以使用VALUES()
和JOIN
执行此操作:
SELECT v.othername, . . .
FROM MyTable t JOIN
(VALUES ('XYZ', 'BOB'),
('QRM', 'DAVID')
) v(item, othername)
ON t.item = v.item;
答案 1 :(得分:0)
不,IN
绝对不会让你到达那里。也许你正在寻找CASE ... END
?有了它,你可以"翻译"像这样的字符串:
SELECT CASE item
WHEN 'XYZ'
THEN 'BOB'
WHEN 'QRM'
THEN 'DAVID'
ELSE
item
END item,
value
FROM foo;
答案 2 :(得分:0)
您无法在IN
条款中添加别名......但我也不确定您为什么要这样做?
您可以添加'别名'但是在SELECT子句中。
我假设你的数据结构如下:
Item | Value
------------------
XYZ | 23
QRM | 3
所以你可以这样做:
SELECT
CASE Item
WHEN 'XYZ' THEN 'BOB'
WHEN 'QRM' THEN 'DAVID'
ELSE 'SOMEONE ELSE'
END AS Name,
Value
FROM MyTable
WHERE Item IN ('XYZ', 'QRM')