只想知道 发表于 2015-1-16 22:18:28

MYSQL网页设计剖析SQL Server 2005 溢用之:兼并列值...

在我们工作的过程中,经常能听到很多不使用MySQL的理由,虽然其中有一些是对MySQL的误解,不过同样也有一些是合情合理的。  良多人大概发明,不管是在sql2000,仍是在sql2005中,都没有供应字符串的聚合函数,以是,当我们在处置以下请求时,会对照贫苦,但在SQLServer2005中,这类情形失掉了改良,我们能够轻松地完成这项处置。
成绩形貌:
不管是在sql2000,仍是在sql2005中,
都没有供应字符串的聚合函数,以是,当
我们在处置以下请求时,会对照贫苦:
有表tb,以下:
id  value
-----------
1  aa
1  bb
2  aaa
2  bbb
2  ccc
必要失掉了局:
id  values
-----------------
1   aa,bb
2   aaa,bbb,ccc
即,groupbyid,求value的和(字符串相加)</p>  1.旧的办理办法
创立处置函数
CREATEFUNCTIONdbo.f_str(@idint)
RETURNSvarchar(8000)
AS
BEGIN
  DECLARE@rvarchar(8000)
  SET@r=
  SELECT@r=@r+,+value
  FROMtb
  WHEREid=@id
  RETURNSTUFF(@r,1,1,)
END
GO
--挪用函数
SELECtid,values=dbo.f_str(id)
FROMtb
GROUPBYid</p>  2.新的办理办法
示例数据
DECLARE@tTABLE(idint,valuevarchar(10))
INSERT@tSELECT1,aa
UNIONALLSELECT1,bb
UNIONALLSELECT2,aaa
UNIONALLSELECT2,bbb
UNIONALLSELECT2,ccc
--查询处置
SELECT*
FROM(
  SELECTDISTINCT
    id
  FROM@t
)A
OUTERAPPLY(
  SELECT
    =STUFF(REPLACE(REPLACE(
      (
        SELECTvalueFROM@tN
        WHEREid=A.id
        FORXMLAUTO
      ),<Nvalue=",,),"/>,),1,1,)
)N/*--了局
id     values
---------------------------
1     aa,bb
2     aaa,bbb,ccc
(2行受影响)
--*/</p>  注:兼并与分拆的CLR,sql2005的示例中有:
  在安装sql2005的示例后,默许安装目次为drive:ProgramFilesMicrosoftSQLServer90SamplesEngineProgrammabilityCLRStringUtilities中。
曾经的功能列表可能会迅速变得过时了。而且,有些功能对有的应用程序非常重要,但是对别的应用程序则不一定。

柔情似水 发表于 2015-1-19 07:45:17

我们学到了什么?思考问题的时候从表的角度来思考问

山那边是海 发表于 2015-1-25 10:02:42

财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的..

爱飞 发表于 2015-2-2 21:38:46

也可谈一下你是怎么优化存储过程的?

活着的死人 发表于 2015-2-8 06:47:02

如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。

admin 发表于 2015-2-24 22:09:17

而写到本地,我又考虑到效率问题.大家来讨论讨论吧,分数不打紧,就给10分,十全十美,没啥对错,各抒己见,但是要有说服力的哦~

愤怒的大鸟 发表于 2015-3-7 13:51:00

记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。

深爱那片海 发表于 2015-3-15 07:37:21

不好!如果出了错;不好调试;不好处理!其实web开发将代码分为3层:web层;业务逻辑层和数据访问层;一般对数据库的操作都在数据访问层来做;这样便于调试和维护!而且将来如果是换了数据库的话;你只需要改数据层的代码;其他层的基本可以不变!要是你在jsp中直接调用sql数据库;那么如果换了数据库呢?岂不都要改?如果报了异常呢?怎么做异常处理?

乐观 发表于 2015-3-21 22:54:02

XML字段类型更好的解决了XML数据的操作。XQuery确实不错,但是个人对其没好感。(CSDN的开发者应该是相当的熟了!)
页: [1]
查看完整版本: MYSQL网页设计剖析SQL Server 2005 溢用之:兼并列值...