4

我有以下 SQL 代码:

SELECT eml AS "Email Address"
FROM emailtbl
WHERE DEPT LIKE 'E%'

我的问题是,如果部门以“F”开头,我必须选择传真而不是 eml。如果部门以“E”开头,我该怎么做才能选择 eml,如果部门以“F”开头,我该怎么做?

谢谢

4

2 回答 2

9

一种选择是使用UNION ALL语句

SELECT eml AS "Entity"
FROM   emailtbl
WHERE  DEPT LIKE 'E%'
UNION ALL
SELECT fax AS "Entity"
FROM   emailtbl
WHERE  DEPT LIKE 'F%'

另一种是使用CASE语句

SELECT CASE WHEN Dept LIKE 'E%' THEN eml ELSE fax END AS "Entity"
FROM   emailtbl
WHERE  DEPT LIKE 'E%' OR DEPT LIKE 'F%'
于 2012-08-02T12:36:21.370 回答
1

这个怎么样?

IF (SUBSTRING(@useLike,1,1) = 'E')
BEGIN
    SELECT eml AS "Email Address"
    FROM emailtbl
    WHERE DEPT LIKE @useLike

END
ELSE
BEGIN
    SELECT fax AS "Email Address"
    FROM emailtbl
    WHERE DEPT LIKE @useLike
END
于 2012-08-02T12:38:18.933 回答