鉴于这样的数据:就像CASE语句时,没有评估预期
CREATE TABLE tmpTable(
fldField varchar(10) null);
INSERT INTO tmpTable
SELECT 'XXX'
UNION ALL
SELECT 'XXX'
UNION ALL
SELECT 'ZZZ'
UNION ALL
SELECT 'ZZZ'
UNION ALL
SELECT 'YYY'
SELECT
CASE WHEN fldField like 'YYY' THEN 'OTH' ELSE 'XXX' END AS newField
FROM tmpTable
预期的结果集是:
XXX
XXX
XXX
XXX
OTH
会casue什么情况SQL服务器2000找不到'YYY'?并返回以下的结果集:
XXX
XXX
XXX
XXX
XXX
的问题是与像“YYY”,我已经找到其他方法来写这让它开始工作,但我想知道为什么这个确切的方法不起作用。另一个困难是它在我的大多数SQL Server 2000环境中都能正常工作。我需要找出导致这种情况的不同之处。谢谢你的帮助。
You ar e绝对正确。我刚刚在Mocrosoft的网站http://support.microsoft.com/kb/279293/en-us上发现了关于几乎相同问题的bug修复。我证实,给我的问题的版本没有修补。 SP1修复了这个问题。 – 2008-09-23 14:55:44