日期:2014-05-18  浏览次数:20387 次

麻烦路过的帮我测试下一个语句! 多谢!
请务必说明下测试环境,是sql2000,还是2005,或者2008 ? 具体点更好。。。。
原因??

SQL code

Create table T(id char(10))
insert into T select 'A'
insert into T select 'B'
insert into T select 'C'

select '#'+case id when 'C' then '' else id end+'$' from T

Drop table T

--我测试下的结果
/* 
sql2000 sp4 的
------------------------
#A         $
#B         $
#          $

sql2005 的结果不同
#A         $
#B         $
#$              -- 这笔不一样。。。。。

*/




------解决方案--------------------

------解决方案--------------------
占位
------解决方案--------------------
D
------解决方案--------------------
..
------解决方案--------------------
SQL code


#A         $
#B         $
#          $

------解决方案--------------------
Create table T(id char(10))
insert into T select 'A'
insert into T select 'B'
insert into T select 'C'

select '#'+case id when 'C' then '' else id end+'$' from T

Drop table T

--我测试下的结果
/* 
sql2000 sp4 的
------------------------
#A $
#B $
# $


*/


------解决方案--------------------
SQL code
Create table T(id char(10))
insert into T select 'A'
insert into T select 'B'
insert into T select 'C'

select '#'+case id when 'C' then '' else id end+'$' from T

--Drop table T

(所影响的行数为 1 行)


(所影响的行数为 1 行)


(所影响的行数为 1 行)

             
------------ 
#A         $
#B         $
#          $

(所影响的行数为 3 行)

------解决方案--------------------
结果和楼主的一样啊?
咋了?
------解决方案--------------------
#A $
#B $
#$


sql 2008
------解决方案--------------------
我不是路过的,我是过路的 。。
------解决方案--------------------
莫非在2005中CHAR的没了?
------解决方案--------------------
探讨
#A        $
#B        $
#$


sql 2008

------解决方案--------------------
/*
version:Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (Intel X86) 
Mar 29 2009 10:27:29 
Copyright (c) 1988-2008 Microsoft Corporation
Standard Edition on Windows NT 5.2 <X86> (Build 3790: Service Pack 2)
*/


Create table T(id char(10))
insert into T select 'A'
insert into T select 'B'
insert into T select 'C'

select '#'+case id when 'C' then '' else id end+'$' from T

Drop table T

/*
#A $
#B $
#$
*/


------解决方案--------------------
sql 2000(sp3)


------------ 
#A $
#B $
# $

(所影响的行数为 3 行)
------解决方案--------------------
SQL code
--2005 SP3
Create table T(id char(10))
insert into T select 'A'
insert into T select 'B'
insert into T select 'C'

select '#'+case id when 'C' then '' else id end+'$' from T

Drop table T
/*
------------
#A         $
#B         $
#$

(3 個資料列受到影響)
*/