AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-10267

Biju jose's questions

Martin Hope
Biju jose
Asked: 2017-12-21 04:45:29 +0800 CST

循环浏览表中的值

  • 2

我正在尝试找到解决此问题的方法,我有两个表

表号 1

| no | ticket |
|----|--------|
| 1  | T1     |
| 2  | T2     |
| 3  | T3     |

表 2

| id | CustomerId |
|----|------------|
| 1  | C1         |
| 2  | C2         |

我需要以下套装

| Tickeid | CustomerId |
|---------|------------|
| T1      | C1         |
| T2      | C2         |
| T3      | C1         |

它基本上与 ticketid 循环,我从两个表上的交叉连接开始但无法获得所需的结果

编辑:1 可能发生的一个变化是表 2 中的值可以有 2 个以上的值,如表 1 中有 T1、T2、T3、T4,表 2 中有 C1、C2、C3,然后我需要 T1C1、T2C2、T3C3, T4C1

再次

如果表 2 只是 C1

那么我只需要T1C1。

sql-server t-sql
  • 2 个回答
  • 472 Views
Martin Hope
Biju jose
Asked: 2017-11-07 07:35:58 +0800 CST

将其解析为邻接表

  • 0

我正在尝试将此列表解析为示例 DDL 中的邻接列表。

CREATE TABLE [dbo].[classification](
    [sno] [float] NULL,
    [classification] [nvarchar](255) NULL,
    [classificationTitle] [nvarchar](255) NULL
) ON [PRIMARY]

INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (1, N'23-11 00 00', N'Site Products')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (2, N'23-11 11 00', N'Ground Anchorages')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (3, N'23-11 11 11', N'Retaining Stabilizing Ground Anchors')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (4, N'23-11 11 11 11', N'Retaining Stabilizing Ground Components')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (5, N'23-11 11 11 11 11', N'Stabilizing Ground Anchor Heads')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (6, N'23-11 11 11 11 13', N'Stabilizing Ground Tendons')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (7, N'23-11 11 11 13', N'Stabilizing Ground Grouted Anchors')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (8, N'23-11 11 11 15', N'Stabilizing Ground Plate Anchors')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (9, N'23-11 11 11 17', N'Stabilizing Ground Rock Bolts')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (10, N'23-11 11 11 19', N'Stabilizing Ground Rock Anchors')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (11, N'23-11 11 11 21', N'Stabilizing Ground Anchor Tiebacks')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (12, N'23-11 11 13', N'Earth Reinforcement Anchors')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (13, N'23-11 11 13 11', N'Earth Reinforcement Soil Nails')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (14, N'23-11 13 00', N'Ground Improvement Products')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (15, N'23-11 13 11', N'Soil Stabilization Products')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (16, N'23-11 13 11 11', N'Soil Stabilization Injectable Chemicals')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (17, N'23-11 13 11 13', N'Soil Stabilization Pressure Grouting')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (18, N'23-11 13 11 15', N'Ground Freezing Soil Stabilization')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (19, N'23-11 13 11 17', N'Soil Stabilization Fills')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (20, N'23-11 13 11 17 11', N'Soil Stabilization Fill Blocks')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (21, N'23-11 13 11 17 13', N'Soil Stabilization Compressible Fill')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (22, N'23-11 13 11 19', N'Other Soil Stabilizations')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (23, N'23-11 13 11 21', N'Piped Field Drainage')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (24, N'23-11 13 11 21 11', N'Field Drainage Land Drainage Pipes')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (25, N'23-11 13 11 23', N'Field Drainage Blocks')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (26, N'23-11 13 11 25', N'Field Drainage Geocomposite Drains')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (27, N'23-11 13 11 25 11', N'Field Drainage Geocomposite Edge Drains')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (28, N'23-11 13 11 25 13', N'Field Drainage Geocomposite In Place Wall Drains')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (29, N'23-11 13 11 27', N'Geotextile Subsurface Drainage Filtration')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (30, N'23-11 15 00', N'Sheeting and Revetments')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (31, N'23-11 15 11', N'Sheeting Geosynthetics')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (32, N'23-11 15 11 11', N'Sheeting Geotextiles')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (33, N'23-11 15 11 13', N'Sheeting Geogrids')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (34, N'23-11 15 11 15', N'Sheeting Geomembranes')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (35, N'23-11 15 11 17', N'Sheeting Geocomposites')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (36, N'23-11 15 11 19', N'Sheeting Mulch Control Netting')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (37, N'23-11 15 11 21', N'Sheeting Synthetic Erosion Controls')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (38, N'23-11 15 11 23', N'Sheeting Re vegetation Mats')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (39, N'23-11 15 11 25', N'Sheeting Turf Reinforcement Mats')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (40, N'23-11 15 13', N'Revetments')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (41, N'23-11 15 13 11', N'Revetment Soil Blankets')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (42, N'23-11 15 13 13', N'Pool Revetments')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (43, N'23-11 15 13 15', N'Trench Revetments')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (44, N'23-11 15 13 17', N'Revetment Rock Linings')
GO
INSERT [dbo].[classification] ([sno], [classification], [classificationTitle]) VALUES (45, N'23-11 15 13 19', N'Revetment Ripraps')
GO

我正在尝试获得此输出

+----------+---------+
| parentid | childid |
+----------+---------+
| NULL     |       1 |
| 1        |       2 |
| 2        |       3 |
| 3        |       4 |
| 4        |       5 |
| 4        |       6 |
| 3        |       7 |
| 3        |       8 |
| 3        |       9 |
| 3        |      10 |
| 3        |      11 |
| 1        |      12 |
| 12       |      13 |
+----------+---------+

到目前为止,我已经想出了这个。

;with cte as (
select LEFT([classification], LEN([classification]) - 3)as immediateparent,
[classification],sno
FROM [classification]
)
select a.sno,cte.sno from [classification] a 
left join cte on cte.immediateparent =a.[classification]

但无法找到任何帮助。

sql-server t-sql
  • 2 个回答
  • 57 Views
Martin Hope
Biju jose
Asked: 2016-01-10 21:07:26 +0800 CST

多列连接

  • 6

如何将多列连接成一行?例如:

id   name    car
1    sam     dodge
1    ram     maserati
1    john    benz
1    NULL    mazda
2    kirk    lexus
2    Jim     rolls
1            GMC

预期的结果集是:

ID  name               car
1   sam,ram,john       dodge,maserati,benz,mazda,GMC
2   kirk,jim           lexus,rolls

使用我在 Stack Overflow 上找到的解决方案:

SELECT * FROM (
SELECT t.id,stuff([m].query('/name').value('/', 'varchar(max)'),1,1,'') AS [SomeField_Combined1],
stuff([m].query('/car').value('/', 'varchar(max)'),1,1,'') AS [SomeField_Combined2]
FROM dbo.test t
OUTER apply(SELECT (

SELECT id, ','+name AS name
,','+car AS car
FROM test WHERE test.id=t.id
FOR XML PATH('') ,type)
             AS  M) A)S
GROUP BY id,somefield_combined1,somefield_combined2 

有没有更好的解决方案?内部选择来自昂贵的多表连接(不是上面显示的单表“测试”)。该查询位于内联 TVF 中,因此我无法使用临时表。

此外,如果有一个空白列,结果将产生额外的逗号,如

ID  name                car
1   sam,ram,john,,      dodge,maserati,benz,mazda,GMC
2   kirk,jim           lexus,rolls

有什么办法可以防止这种情况发生吗?

sql-server sql-server-2008
  • 4 个回答
  • 18286 Views
Martin Hope
Biju jose
Asked: 2013-02-03 02:18:56 +0800 CST

剖析连接

  • 3

最近我在dba.stackexchange中问了一个问题,这个问题是关于 sql 中的数据层次结构的,一个叫chris allen的人回答了这个问题,我真的很喜欢它,但是当我试图更多地理解这个查询时,我感到困惑。

这是查询:

Res_id  Res_name         Man_id
1           sam             3
2           Biju            4
3           adrian          Null
4           Helen           3
5           Micah           4


select  
 level1.res_name as level1,
 level2.res_name as level2,
 level3.res_name as level3,
 level4.res_name as level4,
 level5.res_name as level5

from resource as level1
left join resource as level2 on level1.res_id=level2.man_id
left join resource as level3 on level2.res_id=level3.man_id
left join resource as level4 on level3.res_id=level4.man_id
left join resource as level5 on level4.res_id=level5.man_id

where isnull(level1.man_id,0)=0

我做了好几种破解方法,都是徒劳。我想我错过了一些很好的东西我的发现如下

  1. 首先,他将四列命名为每个级别 1、2、3 等
  2. 每次他离开时加入同一张表 4 次,每次都使用不同的别名
  3. 通过在每个连接上给出条件,表将更改为下一个级别
  4. where条件指定manager

我无法理解的部分是他所做的连接,即使我知道左连接的使用,我们将在其中获取左表的列,如果没有找到匹配项,则在右侧,它将为 NULL。所以我正在寻找一些可视化在这里发生的连接或对这种特定场景的深度连接的一些理解。如果问题不适合这里,我将删除它。我在发布的问题中也问了同样的问题,但没有回复,这就是我提出新问题的原因

sql-server t-sql
  • 1 个回答
  • 161 Views
Martin Hope
Biju jose
Asked: 2013-01-28 19:58:54 +0800 CST

如何链接sql中的每一列?

  • 1

我一直在处理我的一位开发人员提供的查询,该开发人员作为初级 DBA 从事水晶报告工作,即使我忙于其他事情,我也总是喜欢帮助他们,因为这会增加我对 T-sql 的了解。当前的场景很简单,就是进行自联接。下面给出了此方案的架构

create table resource(
res_id int,res_name varchar(20), man_id int)

填充内容并运行下面的查询给出资源名称及其管理器

SELECT a.res_name,b.res_name AS manager FROM dbo.RESOURCE a INNER JOIN dbo.RESOURCE b 
ON b.res_id=a.man_id

res_name   manager
------------------
sam       will
sunny     helen
will      micah

但是下次我的朋友进入我的隔间时,他需要与上述不同的答案,他需要这样的结果

山姆将弥迦

所以我将如何链接结果我不知道从哪里开始。

sql-server t-sql
  • 2 个回答
  • 2038 Views
Martin Hope
Biju jose
Asked: 2013-01-12 19:07:17 +0800 CST

SQL 服务器 BPA 2008R2

  • 2

我一直在使用 SQL Server BPA 从 Microsoft 获取有用的信息。我使用的是它的 2005 版本,我曾经在其中以 CSV 格式导出结果,但最近我得到了两台新服务器,上面安装了 SQL Server 2008 R2,我知道我不能在这些服务器上运行 BPA 2005,所以选择了它的 R2 版本,但它没有以 CSV 格式保存报告的选项,只有 XML,我曾尝试使用 Excel 将其转换为 CSV 但没有用,即使它显示详细信息但不能缩小记下结果 将结果转换为 CSV 格式有什么想法吗?

sql-server sql-server-2008-r2
  • 4 个回答
  • 495 Views
Martin Hope
Biju jose
Asked: 2012-11-15 20:27:39 +0800 CST

T-SQL 中的填充函数

  • 1
select STUFF(
STUFF(RIGHT('000000' + CAST([run_duration] AS VARCHAR(6)),  6)
            , 3, 0, ':')
        , 6, 0, ':') 
    AS [LastRunDuration (HH:MM:SS)]
 from sysjobhistory

我上面给出的查询工作正常,但我试图更清楚地理解它。我的观察是:

  1. 首先,我们将运行持续时间转换varchar为长度为 6 的 and,并在其右侧附加六个 0,如果它是10then00000010
  2. 在我们使用 stuff 函数将其插入: 到这里之后,它位于第 3 个位置,所以上面的变成了00:000010
  3. 我们再次使用 stuff 将:符号插入到第六个位置,这样它就变成了00:00:0010

但是当我运行查询时,如果有一个值10,它显示为00:00:10.

怎么可能?

sql-server t-sql
  • 1 个回答
  • 745 Views
Martin Hope
Biju jose
Asked: 2012-10-27 22:50:22 +0800 CST

存储过程和网络拥塞

  • 2

去面试的时候,面试官问我“存储过程有什么好处?” 我开始回答,但当我说“它减少了网络拥塞”时,他突然说“不,它没有”。

我突然停顿了一下,我不敢问他为什么。采访结束后,我在网上搜索了很多,但我发现我说的重点是有,但没有解释。所以我问自己并做出了一些断言:
由于存储过程是预编译的,即已经为其创建了执行计划,因此它提高了执行速度。但是对于我们将一些变量传递给 SP 的情况,这些变量需要去服务器执行,并且应该为每个变量检索不同的结果。

所以我的观点是面试官是对的:网络拥塞并没有减少,每次都要将变量传递给数据库并返回结果,所以网络忙于这些。正确的?

我的断言正确吗?

stored-procedures
  • 2 个回答
  • 548 Views
Martin Hope
Biju jose
Asked: 2012-10-20 06:57:56 +0800 CST

如何使用 xp_fixeddrives 创建存储过程?

  • 5

我需要一个存储过程来检查 2 个链接服务器中的可用空间。(服务器是手动链接的)。我想出了这样的查询并使用 sql server 2008

ALTER PROCEDURE freespace
AS
BEGIN
    CREATE Table #freespace(drive VARCHAR(50),freedrivespace VARCHAR(50));
    DECLARE @servername VARCHAR(50);
    DECLARE @sql VARCHAR(100);
    DECLARE @space  CURSOR;
    SET @space= CURSOR FOR
    SELECT Name FROM SERVERNAME;
    OPEN @space;
    FETCH NEXT
    FROM @space INTO @servername;
    WHILE @@FETCH_STATUS=0
    BEGIN


    SET @sql = '['+@servername+']...xp_fixeddrives';
    INSERT INTO #freespace
    EXEC(@sql);
    FETCH NEXT FROM @space INTO @servername;
    END
    CLOSE @space;
    DEALLOCATE @space;
END

该servername表由链接服务器的服务器名称组成,例如 server1、server2。

当我运行此查询时,会显示如下错误:

Msg 7202, Level 11, State 2, Line 1
Could not find server 'server1' in sys.servers. Verify that the correct server name
was specified. If necessary, execute the stored procedure sp_addlinkedserver to add
the server to sys.servers.

 (0 row(s) affected)

OLE DB provider "SQLNCLI10" for linked server "server1" returned message "No
transaction is active.".
Msg 7391, Level 16, State 2, Line 1
The operation could not be performed because OLE DB provider "SQLNCLI10" for linked
server "server1" was unable to begin a distributed transaction.

我认为问题出在动态 SQL 上。我已尝试对此查询进行许多更改,但仍然出现此错误。

更新

现在我需要将服务器名也包含在表中,如果我创建了一个额外的列“服务器名”并使用此查询插入值

SET @sql = insert into #freespace values(@servername,['+@servername+']...xp_fixeddrives');

EXEC(@sql);

但它显示一个错误,请帮助

sql-server stored-procedures
  • 1 个回答
  • 4124 Views
Martin Hope
Biju jose
Asked: 2012-10-13 02:45:00 +0800 CST

打印相同数据类型的变量

  • 1

我正在寻找打印相同数据类型的两个变量我有这样的东西

declare @one int ,@two int
set @one=1
set @two=2
print @one+@two

显然它会给出结果 3 但我需要结果 1 2

在搜索时,我必须转换这些变量中的任何一个并提出这个查询。

print convert(varchar(10),@one)+@two 

但结果是一样的3!我该怎么做才能得到结果?注意:我正在使用 sql server

sql-server t-sql
  • 2 个回答
  • 1605 Views
Martin Hope
Biju jose
Asked: 2012-08-21 20:27:19 +0800 CST

如何为主键创建规则

  • 1

我正在使用 SQL Server 2005,我需要创建一个包含字母字符和 3 个数字的主键:

    p001
    b201

我知道我需要创建一个规则并将该规则绑定到主键列。我对使用LIKE查询创建规则有点困惑:

CREATE RULE pK-rule AS @pk LIKE'[a-z][0-9][0-9][0-9]'

有人可以建议我需要改变什么吗?

sql-server sql-server-2005
  • 2 个回答
  • 195 Views
Martin Hope
Biju jose
Asked: 2012-08-08 23:06:07 +0800 CST

单个查询返回单个记录中不同 ID 的计数

  • 3
select count(title_id)as algodata from titles where pub_id =1389  
select count(title_id)as binnet   from titles where pub_id =0877  
select count(title_id)as newmoon  from titles where pub_id =0736

使用的数据库pubs在 SQL Server 中。

我可以使用单个查询在单个记录中显示每个发布者(这里有 3 个发布者)的记录数吗?

sql-server query
  • 5 个回答
  • 2942 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve