小编Nat*_*teJ的帖子

ORDER BY与UNION的不同数据集(T-SQL)

我有一个查询是UNION两个有点相似的数据集,但它们都有一些列不存在于另一个中(即,列中的结果中有NULL值UNION).

问题是,我需要ORDER使用仅存在于一个或另一个集合中的那些列来生成数据,以便以软件方面的友好格式获取数据.

例如:Table1有字段ID, Cat, Price.表2有字段ID, Name, Abbrv.该ID字段在两个表之间是通用的.


我的查询看起来像这样:

SELECT t1.ID, t1.Cat, t1.Price, NULL as Name, NULL as Abbrv FROM t1 
UNION 
SELECT t2.ID, NULL as Cat, NULL as Price, t2.Name, t2.Abbrv FROM t2 
ORDER BY Price DESC, Abbrv ASC 
Run Code Online (Sandbox Code Playgroud)

ORDER BY就是我被困住的地方.数据如下所示:

100   Balls     1.53                       
200   Bubbles   1.24                       
100                     RedBall    101RB   
100                     BlueBall   102BB   
200                     RedWand    201RW   
200                     BlueWand   202BW   
Run Code Online (Sandbox Code Playgroud)

...但我希望它看起来像这样:

100   Balls …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server union join

15
推荐指数
2
解决办法
3万
查看次数

如何从代码中设置Sql Server中的默认数据库?

我似乎无法弄清楚如何从代码中设置Sql Server中的默认数据库.这可以是.Net代码或T-Sql(T-Sql会很好用,因为它很容易在任何语言中使用).我搜索了Google,只能在Sql Server Management Studio中找到它.

database sql-server sql-server-2000

13
推荐指数
2
解决办法
2万
查看次数

如何在SQL Server中检查我的数据有回车和换行?

面对一个问题,似乎我存储在SQL Server中的数据没有正确存储,简单地说,如何验证varchar数据是否有回车符和换行符?我尝试将它们打印出来,不显示特殊字符.谢谢

sql sql-server

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

访问函数或表达式等效于SQL ROW_NUMBER()?

在执行INSERT查询时,我可以在Access中做些什么来模仿TSQL ROW_NUMBER()函数的行为吗?

t-sql ms-access

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

List.Sort的效率两倍,与List.Clone和Sort相比

语言细节:C#.NET 3.5/4.0; project是一个预编译的DLL,是其他产品调用/使用的"模块".

我的问题是关于整体效率,我意识到这可能归结为"内存使用与CPU周期"的决定,这很好 - 我仍然想知道你认为哪条路线更好.

我有一个传递给方法的MyObjects列表,该方法需要按Property2对List进行排序,用它做"一些东西",然后按Property1对List进行排序以做"其他事情"并继续生活.重要提示:当Property1首次进入方法时(例如,从数据层), List1 已经按照排序.

排序将是"自定义内联",如下所示:

myList.Sort((ObjA, ObjB) => ObjA.Prop2.CompareTo(ObjB.Prop2));
Run Code Online (Sandbox Code Playgroud)

做这两种排序是个好主意吗?或者,将列表克隆到新的ListB并且仅调用Sort一次(在ListB上,由Prop2调用)会更好吗?然后用它做"一些东西",完成后,使用原始列表中的"其他东西"并继续.

我最初的猜测是"Two Sorts"会旋转更多的CPU周期,而"Clone&Sort"会使用更多的内存(因为它必须创建新的ListB对象) - 是的我知道列表成员(MyObjects)会不被克隆,他们只是被新的ListB指向.

思考?

.net c# sorting performance

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

SQL Server - 插入触发器与每分钟作业

我的问题主要是关注"什么是最好的表现",但也有点"哲学"说话(如果它有所作为)......所以让我们跳进去.

[TableA].[ColumnB]存储[TableC]中需要存在的值.[ColumnD].蝙蝠,没有涉及外键的答案 - 只是假设他们在这种环境中"不允许"出于任何原因.

但是由于"情况x,y,z",[TableA].[ColumnB]有时会得到[TableC]中不存在的值.[ColumnD],因为,比方说,[TableA]从一个存在的对象中填充在将代码作为"序列化blob"运行时,数据的内存中表示形式,并且在通过某些其他进程从[TableC].[ColumnD]中删除这些值之前填充[ColumnB]值.无论如何,这是例如,所以不要陷入"为什么会发生这种情况",只要接受它.

要"修复"这个问题,哪种方法最适合这两种方法:1.在[TableA]上创建一个触发on-INSERT的触发器,将[ColumnB]更新为它应该的值(假设我有一个"映射") "不好的价值观".或者,2.每小时/每分钟运行一个预定作业/运行更新查询以将所有可能的"坏"值更改为相应的"好"值.

更一般地说,什么是更好的性能和/或什么是最佳实践:触发器,或定期的预定作业?在上下文中,假设[TableA]通常在数十万行的数量级上,插入一次发生10-100条记录,每隔几分钟发生一次,每天发生几次.

sql sql-server performance triggers

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