如何在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) 我使用一个用户登录的SQLServer(未SA),所以我不能执行的是"版EXEC sp_configure特设分布式查询",1"
如果始终设置'Ad Hoc Distributed Queries'?有风险还是劣势?
问题.
我经常收到来自不同供应商的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
运行此代码时:
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) 我想搜索表中的人(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,但在查询中有很多喜欢.有没有更好的方法从大表中提取这些记录?
我一直在检查stackoverflow上的各种问题,当然还有谷歌,但我真的找不到这个问题的具体解决方案:
如何在ASP Classic中创建一个函数来加密和解密SQL Server数据库中的高度敏感信息?像fx.社会安全号码或类似的东西?
(或者可以在我的SQL字符串中执行吗?)
是的,我知道如何用ASP创建一个函数;)
不,我只是不能使用SHA或MD5散列信息,因为它们只能以一种方式工作.我需要双向工作!
越安全,越快越好!:)
编辑:
后来我发现了这个:
http://www.4guysfromrolla.com/webtech/010100-1.shtml
但我真的不知道这是否足够安全并且会做什么?其中我可以看到,它是双向的?
所以我有一个可怕的查询,我试图在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 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 Server上特定数据库的日期时间?
它是否与操作系统的日期/时间相关联?
我们希望模拟未来的日期时间以进行测试,即GETDATE()返回日期.
它必须处于半生产(临时)环境中,所以不幸的是,改变操作系统日期/时间对我们来说不是一个选择.
在一个理想的世界中,我们会启动一个虚拟服务器,但目前还不是一个真正的选择.
脚本
我需要每天通过电子表格更新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-server ×10
sql ×4
ado.net ×1
arrays ×1
asp-classic ×1
c# ×1
encryption ×1
excel ×1
getdate ×1
join ×1
ssis ×1
t-sql ×1