当前位置: 首页 > 面试题库 >

Sybase:如何连接sybase列中的行

仲孙善
2023-03-14
问题内容

我有一个ID和部门表。

表是

id  dept    salary  date
1   30      2000    8/25/2015 12:06:54.870 PM
2   20      5500    7/12/2015 12:06:54.870 PM
3   30      6700    11/21/2013 12:06:54.870 PM
4   30      8900    4/16/2009 12:06:54.870 PM
5   30      9900    6/29/2014 12:06:54.870 PM
6   10      1120    7/3/2015 12:06:54.870 PM
7   20      8900    4/13/2013 12:06:54.870 PM
8   10      2400    7/23/2015 12:06:54.870 PM
9   30      2600    8/21/2015 12:06:54.870 PM
10  10      2999    8/3/2015 12:06:54.870 PM

只需要这样的输出

Dept  ID
30     1,3,4,5,9

问题答案:

这是我所知道的最好方法。如果有人知道更好的解决方案,请发帖:

我已经把你的桌子命名了 sal

DECLARE @id     INT
        , @max  INT
        , @dep  INT
        , @all  VARCHAR(255)

SELECT  @id = 1
        , @max = MAX(id)
FROM    sal

SELECT * INTO #tmp FROM sal

WHILE (1=1)
BEGIN

    SELECT  @dep = dept
    FROM    #tmp
    WHERE   id = @id

    IF @dep IS NULL
    BEGIN
        SELECT  @id = @id + 1

        IF @id > @max
            BREAK
        ELSE
            CONTINUE
    END

    UPDATE  #tmp
    SET     @all = @all + ',' + CONVERT(VARCHAR, id) 
    WHERE   dept = @dep

    --remove last comma
    select  @all = RIGHT(@all, LEN(@all)-1)

    DELETE  #tmp
    WHERE   dept = @dep

    -- selecting the output. insert into table if you want
    SELECT  @dep, @all

    SELECT  @dep   = NULL
            , @all = NULL

    SELECT  @id = @id + 1

    IF @id > @max
        BREAK

    -- fail safe
    IF @id > 100
        BREAK
END

drop table #tmp


 类似资料:
  • 我想使用jdbc连接Sybase ASE,但我在以下方面遇到了一个错误: 有人能告诉我怎么解决这个问题吗?

  • 1-需要在PHP服务器机器中安装ASE才能连接到远程赛贝斯ASE数据库? 2-有没有办法不使用sql.ini(接口)文件? 3-有没有一种方法可以连接到远程赛贝斯ASE数据库,而无需对PHP服务器机器进行任何修改? (我运行的是PHP5.3.2,Windows Server)。

  • 美国Sybase公司研制的一种关系型数据库系统,是一种典型的UNIX或WindowsNT平台上客户机/服务器环境下的大型数据库系统。 Sybase提供了一套应用程序编程接口和库,可以与非Sybase数据源及服务器集成,允许在多个数据库之间复制数据,适于创建多层应用。系统具有完备的触发器、存储过程、规则以及完整性定义,支持优化查询,具有较好的数据安全性。Sybase通常与SybaseSQLAnywh

  • 问题内容: 我试图在sybase中更改我的表上的某些类型,但是当我更改它时,输出就是这个。 用户“ DBA”已锁定“表”中的行 如何解锁呢? 问题答案: 我会: 使用sa_locks确定connection_id(此处的文档) 向导致锁定表的连接发出drop connection * connection_id *语句。 小心使用!

  • 我正在开发一个需要访问SAP Sybase ASE数据库的PHP应用程序。 我有巨大的问题试图连接到赛贝斯ASE使用PHP。我不想使用ODBC,因为我想避免接触和配置我的客户机。 有没有简单的连接Sybase ASE的解决方案?在Java中,我只需下载一个JDBC文件,神奇的事情就发生了。。。PHP有这样的解决方案吗?

  • 我试图建立一个SSL连接到赛贝斯ASE 15.7使用JDBC驱动程序没有运气。我尝试了以下选项: > 使用JTDS 1.25驱动程序(jtds-1.2.5.jar) 使用以下连接字符串: 我收到 使用jconnect4(jconn4.jar) 使用以下连接字符串: jdbc:sybase:Tds:host:port/dbname?ENABLE_SSL=true 我得到了