给定此数据:
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
什么情况会导致SQL Server 2000找不到“ YYY”?并返回以下结果集:
XXX
XXX
XXX
XXX
XXX
问题出在“ YYY”之类,我发现了其他编写方法来使其工作,但我想知道为什么这种精确方法不起作用。另一个困难是,它在我的大多数SQL Server 2000环境中都有效。我需要找出它们之间的不同之处。谢谢你的帮助。
检查您的服务包。将我的SQL 2000 box升级到SP4之后,我现在可以根据您的情况获得正确的值。
我仍然得到我在较早的文章中报告的交换数据:(
如果这样做,SELECT @@version您应该得到8.00.2039。任何小于该版本的版本号,都应安装SP4。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。