小编Lun*_*Box的帖子

SSIS 表达式生成器 - 如何查找最后一次出现的字符

我有如下所示的值:

D:\DM-250\Insert_Jobs-QA-UAT\14-FILE_A_UpdateInsert.dts

D:\DM-250\Insert_Jobs-QA-UAT\Something_DaisyChain\14-stuff_and_things_UpdateInsert.dts

D:\DM-250\14-another_file.dts
Run Code Online (Sandbox Code Playgroud)

我想要这 3 个值的最末端,从最后一个"\"字符开始。

我尝试使用FINDSTRING,但我不知道如何获取最后一次出现的字符。

有什么建议?

ssis ssis-2016

2
推荐指数
1
解决办法
1764
查看次数

SQL Server表未使用默认值

我正在使用SSIS包填充表.

这个想法是,每当包上传到表时,它将使用时间戳值getdate().

当我打开它时,我的DDL看起来像这样:

CREATE TABLE [REPORTING].[post_ssis_table_1](
    [validation_key] [int] IDENTITY(1,1) NOT NULL,
    [ssis_ran_date] [datetime] NULL,
    [server_name] [varchar](255) NULL,
    [data_base] [varchar](255) NULL,
--A bunch of other irrelevant columns
    [success_status] [varchar](255) NULL,
    [success_criteria] [varchar](255) NULL,
PRIMARY KEY CLUSTERED 
(
    [validation_key] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

ALTER TABLE [REPORTING].[post_ssis_tbl_1] ADD  DEFAULT (getdate()) FOR [ssis_ran_date]
GO
Run Code Online (Sandbox Code Playgroud)

注意:我没有输入alter语句,这就是我打开DDL时的样子.

当我插入行时,为什么没有为[ssis_ran_date]填充默认值?它实际上只是保持为空.

t-sql sql-server

2
推荐指数
1
解决办法
70
查看次数

Postgres转换数据类型

我有一个列保存为字符数据类型.本专栏将作为日期使用.该列以该格式显示"YYYY-MM-DD".

这是一个问题,因为如果我需要按日期过滤,我必须去

select col_1, col_2
from table
where date LIKE '2016-04%;
Run Code Online (Sandbox Code Playgroud)

如果我想搜索日期范围,这将变成一个巨大的复杂混乱.

将此转换为"日期"数据类型的最简单方法是什么?我希望它继续以YYYY-MM-DD顺序(没有时间戳).

我的最终目标是能够以这样的格式搜索日期:

select col_1, col_2
from table
where date between 2016-01-01 AND 2016-05-31;
Run Code Online (Sandbox Code Playgroud)

你们推荐什么?我很害怕如果我使用alter语句来转换我的数据类型,我将破坏我的约会.(我有一份保存的数据副本,可以再次上传,但这需要永远.)

编辑:这是一个非常大的表.

编辑第2部分:我最初将数据存储为varchar数据类型,因为我的日期没有正确上传,当我尝试保存为日期数据类型时收到错误消息.此列中的每个日期都是"YYYY-MM-DD"顺序.我的解决方案是将其保存为varchar以避免错误消息(我无法弄清楚出了什么问题.我甚至摆脱了前导和尾随空格.)

postgresql sqldatatypes

1
推荐指数
1
解决办法
234
查看次数

数组合值

我有一个看起来像这样的数组:

guest_list = ['P', 'r', 'o', 'f', '.', ' ', 'P', 'l', 'u', 'm', '\n', 'M', 'i', 's', 's', ' ', 'S', 'c', 'a', 'r', 'l', 'e', 't', '\n', 'C', 'o', 'l', '.', ' ', 'M', 'u', 's', 't', 'a', 'r', 'd', '\n', 'A', 'l', ' ', 'S', 'w', 'e', 'i', 'g', 'a', 'r', 't', '\n', 'R', 'o', 'b', 'o', 'c', 'o', 'p']
Run Code Online (Sandbox Code Playgroud)

我想要的是一个如下所示的数组:

guest_list = ['Prof.Plum', 'Miss Scarlet', 'Col. Mustard', 'Al Sweigart', 'Robocop']
Run Code Online (Sandbox Code Playgroud)

换句话说,直到'\n'出现,我希望将所有字符串值组合成1个值.

有什么建议?

编辑#1:

这是我原始代码的一部分:

ogl = …
Run Code Online (Sandbox Code Playgroud)

python arrays python-3.x

1
推荐指数
1
解决办法
50
查看次数

Python Pandas 插入 DF 不起作用

我有一个如下所示的数据框:

df1

        A        Q
0   Apple    chair
1  orange     desk
2    pear  monitor
3   salad     room

df2 = df1[['Q']]

print(df2)

           Q
0      chair
1       desk
2    monitor
3       room


df2 = df2.insert(1, 'file_id_value', range(0, len(df2)))

print(df2)
Run Code Online (Sandbox Code Playgroud)

不返回任何内容,特别是单词'None'。你知道我做错了什么吗?我没有收到错误消息。

python pandas

1
推荐指数
1
解决办法
1356
查看次数

Visual Studio - 2019 无法开始调试

我正在与 Unity 合作。

在 Unity 中,我构建了我的程序。这是一个非常简单的程序。它只是我放在屏幕上的一个立方体。

我单击构建并创建了一个 Visual Studios 解决方案。

我在 Visual Studios 2019 中打开了这个解决方案,然后点击了开始(除了开始没有其他选项)。

这是出现在我的屏幕上的内容:

运行程序后的日志

点击开始后出现的错误消息

我怎样才能摆脱错误消息?

编辑:

我正在尝试使用 Hololens 模拟器。

这篇文章建议在安装 Visual Studio 2019 时不要安装 Unity 工具,这就是我没有这样做的原因。

编辑#2:

这是我来自 Visual Studio 2019 的整个解决方案的图像。

在此处输入图片说明

unity-game-engine visual-studio visual-studio-2019

1
推荐指数
1
解决办法
3561
查看次数

了解 SQL Server Int 数据类型

我有一个名为列的表PtObjId中的INT数据类型。

根据我的理解,通过查看位于此处的Microsoft 文档的线程。我最多只能存储 +/- 2,147,483,647 的值

如果我运行此查询:

Select top 100 *
from [table]
where [PtObjId] IN (44237141916)
Run Code Online (Sandbox Code Playgroud)

应该不会报错吧?

为什么此查询错误如下:

select top 100 *
from [table]
where [PtObjID] IN ('44237141916')
Run Code Online (Sandbox Code Playgroud)

但最上面的查询没有出错?

sql t-sql sql-server int

1
推荐指数
1
解决办法
123
查看次数

ROW_NUMBER() 基于日期

我有以下数据:

test_date
2018-07-01
2018-07-02
...
2019-06-30
2019-07-01
2019-07-02
...
2020-06-30
2020-07-01
Run Code Online (Sandbox Code Playgroud)

我想row_number每次都增加一个值,right(test_date,5) = '07-01'以便我的最终结果如下所示:

test_date    row_num
2018-07-01         1
2018-07-02         1
...                1
2019-06-30         1
2019-07-01         2
2019-07-02         2
...                2
2020-06-30         2
2020-07-01         3
Run Code Online (Sandbox Code Playgroud)

我尝试做这样的事情:

, ROW_NUMBER() OVER (
    PARTITION BY CASE WHEN RIGHT(a.[test_date],5) = '07-01' THEN 1 ELSE 0 END
    ORDER BY a.[test_date]
) AS [test2]
Run Code Online (Sandbox Code Playgroud)

但这对我不起作用。

有什么建议?

sql t-sql sql-server

1
推荐指数
2
解决办法
94
查看次数

带有 OR 子句的 SQL 连接

假设我们有以下查询

select
     *
from
     table_1 as a
left join
     table_2 as b
     on
          a.[id_1] = b.[emp_id] OR
          a.[id_1] = b.[worker_id]
Run Code Online (Sandbox Code Playgroud)

该查询与以下查询有何不同:

    select
         *
    from
         table_1 as a
    left join
         table_2 as b
         on
              a.[id_1] = b.[emp_id] 

union

    select
         *
    from
         table_1 as a
    left join
         table_2 as b
         on
              a.[id_1] = b.[worker_id]
Run Code Online (Sandbox Code Playgroud)

就结果而言,这两个查询不是同义词吗?与联合的查询执行得更快,但我得到了不同的记录数,这就是我问的原因。

编辑 #1

没有索引,我不允许添加任何索引。

顶部查询需要 20 分钟才能运行。底部查询需要 2 分钟才能运行。

这就是为什么我试图以复制顶部查询的方式操作底部查询。

在顶级查询中返回 39,758 条记录。第二次返回大约 78,000 条记录。

使用 anOR而不是 anIN因为这是有人设计存储过程的方式。我只是将它拆开来尝试调整存储过程中的其他内容。

编辑#2:

我正在创建#temp 表并在这些表上添加索引作为解决方案。在添加索引之前,我需要确保我复制了相同数量的记录。

**编辑#3:**

如果你想重现我在做什么,这里有一个例子:

drop …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server

0
推荐指数
1
解决办法
72
查看次数

系统目录与信息架构

在查看 SQL Server Management Studio (SSMS) 时,哪个更好,为什么?在某些情况下我们应该使用一种吗?

我分不清它们之间的区别。

sql t-sql sql-server ssms

0
推荐指数
1
解决办法
97
查看次数

如何删除某个字符前的文字?

假设我有以下值:

1 min 7 sec
23 sec
6 hours 10 min 14 sec
Run Code Online (Sandbox Code Playgroud)

我想回来:

7 sec
23 sec
14 sec
Run Code Online (Sandbox Code Playgroud)

有没有办法在VBA中执行此操作?

如果未使用其值,则可能不会始终存在秒,分或小时.

即如果有60秒,它只会说1分钟.如果确切地说有60分钟,那就说1小时.

excel vba excel-vba

-1
推荐指数
1
解决办法
73
查看次数