标签: sql-server

SQL Server:临时收集聚合中的值并在同一查询中重用

如何在T-SQL中累积值?AFAIK没有ARRAY类型.
我想重新使用同一查询中的值,如使用array_agg()在此PostgreSQL示例中演示的那样.

SELECT a[1] || a[i] AS foo
      ,a[2] || a[5] AS bar  -- assuming we have >= 5 rows for simplicity
FROM   (
    SELECT array_agg(text_col ORDER BY text_col) AS a
          ,count(*)::int4 AS i
    FROM   tbl
    WHERE  id between 10 AND 100
    ) x
Run Code Online (Sandbox Code Playgroud)

我如何用T-SQL最好地解决这个问题?
我能想出的最好的是两个CTE和子选择:

;WITH x AS (
  SELECT row_number() OVER (ORDER BY name) AS rn
        ,name AS a
  FROM   #t
  WHERE  id between 10 AND 100
  ), i AS (
  SELECT count(*) AS …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server arrays aggregate-functions

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

什么是"Ad Hoc Distributed Queries"的风险

我使用一个用户登录的SQLServer(未SA),所以我不能执行的是"版EXEC sp_configure特设分布式查询",1"

如果始终设置'Ad Hoc Distributed Queries'?有风险还是劣势?

sql-server

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

SSIS任务导致列计数不一致导入?

问题.

我经常收到来自不同供应商的Feed文件.虽然列名称是一致的,但是当某些供应商在Feed文件中发送包含更多或更少列的文本文件时,问题就会出现.

此外,这些文件的排列不一致.

除了Cozy Roc提供的动态数据流任务之外,还有另一种方法可以导入这些文件.我不是C#guru,但我使用"脚本任务"控制流程或"脚本组件"数据流任务驱动.

任何建议,样品或方向将不胜感激.

http://www.cozyroc.com/ssis/data-flow-task

一些论坛

http://www.sqlservercentral.com/Forums/Topic525799-148-1.aspx#bm526400

http://www.bidn.com/forums/microsoft-business-intelligence/integration-services/26/dynamic-data-flow

c# sql-server ssis

7
推荐指数
2
解决办法
4935
查看次数

为什么在这种情况下会忽略ConnectTimeout?

运行此代码时:

static void Main(string[] args)
{
    SqlConnectionStringBuilder csb = new SqlConnectionStringBuilder();
    csb.DataSource = @"8.8.8.8"; // some inaccessible ip address
    csb.InitialCatalog = "Tempdb";
    csb.IntegratedSecurity = true;
    csb.ConnectTimeout = 1;
    DateTime start = DateTime.Now;
    try
    {
        new SqlConnection(csb.ToString()).Open();
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
    finally
    {
        Console.Write(string.Format("{0} seconds", DateTime.Now.Subtract(start).TotalSeconds));
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到这个结果:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct …
Run Code Online (Sandbox Code Playgroud)

sql-server ado.net

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

在SQL Server中查询非常规人名

我想搜索表中的人(10密耳记录+),其中包含一些特殊字符,例如以下示例:

Subject_Name (lastname, firstname):
*S-luis-Hernandez, Franciscos 
+, Zeferino 
-, Jose Antonios
., . 
., . .
/, Celsos
17, Herbert Baltazar
`, Irving 
Run Code Online (Sandbox Code Playgroud)

我可以使用类似%来过滤Subject_Name,但在查询中有很多喜欢.有没有更好的方法从大表中提取这些记录?

sql sql-server

7
推荐指数
2
解决办法
117
查看次数

如何使用ASP Classic加密和解密SQL Server数据库中的高度敏感信息?

我一直在检查stackoverflow上的各种问题,当然还有谷歌,但我真的找不到这个问题的具体解决方案:

如何在ASP Classic中创建一个函数来加密和解密SQL Server数据库中的高度敏感信息?像fx.社会安全号码或类似的东西?

(或者可以在我的SQL字符串中执行吗?)

是的,我知道如何用ASP创建一个函数;)

不,我只是不能使用SHA或MD5散列信息,因为它们只能以一种方式工作.我需要双向工作!

越安全,越快越好!:)

编辑:
后来我发现了这个:

http://www.4guysfromrolla.com/webtech/010100-1.shtml

但我真的不知道这是否足够安全并且会做什么?其中我可以看到,它是双向的?

sql-server encryption asp-classic

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

SQL LIKE和IN的子句

所以我有一个可怕的查询,我试图在SQL Server中重写当前存在于MS Access中.基本上我得到的数据来自我试图根据特定标准过滤掉的文本文件.

我的问题是数据在文本文件中的方式.我的表与此类似:

Table1
BusinessDate   DateTime
Amount         money
User1          varchar
User2          varchar
User3          varchar
User4          varchar
...            varchar
User16         varchar
Run Code Online (Sandbox Code Playgroud)

我有一个数据表,其中包含日期,然后有16列,其中的数据已由其他用户添加.此表中还有其他一些字段,但对于此问题它们是不必要的.

当前查询会对userId类似的15个值进行过滤.

SELECT *
FROM Table1
WHERE (User1 Like 'AB%' Or User1 Like 'CD%' Or User1 Like 'EF%'...)
OR (User2 Like 'AB%' Or User2 Like 'CD%' Or User2 Like 'EF%'...)
Run Code Online (Sandbox Code Playgroud)

我想要做的是将类似的值存储在一个表中,以便我可以在我的查询中加入它们.我不知道所有的值,所以我需要使用通配符,因为它可能是字母数字字符的任何可能组合.所以我会有一个这样的表:

ValueTable
AB%
CD%
EF%
HI%
...
Run Code Online (Sandbox Code Playgroud)

然后我的查询将与此类似,但我不认为这是可能的

SELECT *
FROM Table1
WHERE User1 Like IN (SELECT Value FROM ValueTable)
OR  User2 Like IN (SELECT Value FROM ValueTable)
Run Code Online (Sandbox Code Playgroud)

可以这样做吗?如果是这样,应该使用什么语法,因为我完全被难倒了.

sql sql-server

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

SQL:JOIN中OR语句的第一个条件总是先执行?

在SQL Server中,我有以下设计:

在此输入图像描述

是否100%确定JOIN中OR语句的第一个条件将首先执行?那么以下SQL语句将导致绿色结果?

SELECT P.Name, D.Percentage
FROM Personnel P
JOIN Department D ON
  P.Dep_Code = D.Code AND
  (P.SubDep_Code = D.SubCode OR D.SubCode = '*')
Run Code Online (Sandbox Code Playgroud)

sql sql-server join conditional-statements

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

模拟SQL Server实例上的当前日期?

是否可以更改SQL Server上特定数据库的日期时间?

它是否与操作系统的日期/时间相关联?

我们希望模拟未来的日期时间以进行测试,即GETDATE()返回日期.

它必须处于半生产(临时)环境中,所以不幸的是,改变操作系统日期/时间对我们来说不是一个选择.

在一个理想的世界中,我们会启动一个虚拟服务器,但目前还不是一个真正的选择.

sql-server getdate

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

如何使用查找值将记录插入SQL?

脚本

我需要每天通过电子表格更新SQL 2008数据库(唯一可用的选项).格式非常基本,但可能有数百万条记录.Column1和Column3将具有许多预定义的重复值,已经被拉出到单独的表中.

电子表格示例

Column1 Column2 Column3
Apple   10      Red
Apple   20      Red
Apple   15      Blue
Apple   21      Green
Orange  10      Orange
Orange  7       Orange
Orange  9       Red
Orange  70      Blue
Orange  10      Blue
Run Code Online (Sandbox Code Playgroud)

数据库设置

我的数据库设置有三个单独的表:

//Lookup_Column1
id type
1  Apple
2  Orange

//Lookup_Column3
id type
1  Red
2  Blue
3  Green
4  Orange

//Main - this is what should be inserted, after Column1
//and Column2 are matched to their respective ID's
key Column1 Column2 Column3
1   1       10      1 …
Run Code Online (Sandbox Code Playgroud)

sql sql-server excel sql-server-2008

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