我在存储过程中编写了一些SQL,以将数据集减少到我想要报告的有限随机行数.
报告以a开头Group,Users并应用过滤器来指定所需的随机行总数(@SampleLimit).
为了达到预期的效果,我首先创建一个CTE(临时表):
top(@SampleLimit)应用group by UserId (因为UserID出现多次)order by NEWID() 将结果以随机顺序排列SQL:
; with cte_temp as
(select top(@SampleLimit) UserId from QueryResults
where (GroupId = @GroupId)
group by UserId order by NEWID())
Run Code Online (Sandbox Code Playgroud)
一旦我有了这个结果集,然后我删除UserId是NOT IN在上一步中创建的CTE的任何结果.
delete QueryResults
where (GroupId = @GroupId) and (UserId not in(select UserId from cte_temp))
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,我不时得到的结果比指定的结果多,@SampleLimit而且其他时候完全符合预期.
我已经尝试分解SQL并在应用程序之外执行它,我无法重现该问题.
我正在做的事情有什么根本性的错误可以解释为什么我偶尔会得到更多我要求的结果?
为了完整 - 我的重新考虑的解决方案基于以下答案:
select top(@SampleLimit) UserId into #T1
from QueryResults
where (GroupId = @GroupId)
group by UserId
order …Run Code Online (Sandbox Code Playgroud) 考虑以下示例:
declare @somexml as xml
set @somexml = '
<Settings>
<Users>
<ID>1</ID>
<ID>2</ID>
<ID>3</ID>
<ID>4</ID>
<ID>5</ID>
</Users>
</Settings>'
Run Code Online (Sandbox Code Playgroud)
上面XML有一些ID值,我需要将这些值转换为可在临时表中执行连接的数据行。
我不能完全正确地理解语法,我已经尝试了许多示例:
SELECT T.r.value('.','int') as id
FROM @somexml.nodes('/Settings/Users') T(r)
Run Code Online (Sandbox Code Playgroud)
返回值:
|ID |
|------|
|12345 |
Run Code Online (Sandbox Code Playgroud)
下列:
SELECT T.r.query('.') as id
from @somexml.nodes('/Settings/Users/ID') as T(r)
Run Code Online (Sandbox Code Playgroud)
返回值:
|ID |
|-----------|
|<ID>1</ID> |
|<ID>2</ID> |
|<ID>3</ID> |
|<ID>4</ID> |
|<ID>5</ID> |
Run Code Online (Sandbox Code Playgroud)
我越来越近了,但是我想删除XML标签以保留ID值,如下所示:
|ID |
|---|
| 1 |
| 2 |
| 3 |
| 4 |
| 5 …Run Code Online (Sandbox Code Playgroud) 如何使用foreach语句在用户给出的2个值之间循环?
我正在创建一个扫描端口的应用程序,所以我希望用户指定要搜索的端口; 这里有一些不起作用的示例代码,但应该可以帮助您理解我在寻找的内容:
int port1 = Int32.Parse(TextBox1.Text);
int port2 = Int32.Parse(TextBox2.Text);
foreach(int between port1 and port2)
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
有关如何做到这一点的任何建议?
我有一个看起来像这样的值绑定:
<textarea class="form-control" placeholder="Comments" rows="10" data-bind="value: $root.GetTabComment($data).Comment, valueUpdate: 'keyup'"></textarea>
Run Code Online (Sandbox Code Playgroud)
我使用的原因keyup是因为我有一个"按键输出"系统设置.这在用户键入时效果很好,但是如果他们通过拼写检查来纠正拼写(使用鼠标点击而根本没有键盘),则绑定将不会更新.
绑定变量Comment声明为:
Comment = ko.observable("").extend({throttle: 1000})
订阅很简单:
Comment.subscribe(function(){
//save code
});
Run Code Online (Sandbox Code Playgroud)
当点击一个按钮时,有什么方法可以强制绑定获取文本区域的当前值吗?
创建表时,我收到以下错误消息。
消息 2715,级别 16,状态 7,第 1 行 列、参数或变量 #4:找不到数据类型布尔值。
尝试使用此脚本时:
create table artists ( artist_id int,
artist_name varchar(60),
artist_dob datetime,
poster_in_stock boolean )
Run Code Online (Sandbox Code Playgroud)
对我做错了什么有什么建议吗?
我正在尝试除以 2 个计数以返回百分比。
返回以下查询0:
select (
(select COUNT(*) from saxref..AuthCycle
where endOfUse is null and addDate >= '1/1/2014') /
(select COUNT(*) from saxref..AuthCycle
where addDate >= '1/1/2014')
) as Percentage
Run Code Online (Sandbox Code Playgroud)
我应该打石膏吗?
我正在使用DISTINCTSQL查询,同时使用以下查询从SQL Server表中获取记录。
SELECT DISTINCT firstname, lastname, profileImage
from employee
Run Code Online (Sandbox Code Playgroud)
我的表格profileImage中image数据类型在哪里。
问题:
当我尝试从DISTINCT查询中使用表中获取数据时,出现以下错误。
消息421,级别16,状态1,行1无法将图像数据类型选择为DISTINCT,因为它不可比较。
当我DISTINCT从查询中删除关键字时,它可以正常工作。
为什么会这样?
我整个早上都在用这个小东西苦苦挣扎.我尝试将中心放在.navbar-brand整个导航栏的中间位置Bootstrap 3.
有人能解开我的谜团吗?
代码:
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#"><img src="img/logo.png" alt=" "/></a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Home</a></li>
<li><a href="add/">Add your Channel</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
Run Code Online (Sandbox Code Playgroud)
我想在导航栏中间/中心的标识,怎么样?
我想更新boolean列值的单个最新行True.
boolval并timestamp在表我的两列.
boolval timestamp
--------------------------------
True 1998-01-02 00:00:00.000
False 1999-01-02 00:00:00.000
False 2000-01-02 00:00:00.000
True 2001-01-02 00:00:00.000 --(Given this data, I want to update this row)
False 2006-01-02 00:00:00.000
Run Code Online (Sandbox Code Playgroud)
考虑这个伪代码我想做什么..
UPDATE tablename SET boolval='False' WHERE boolval='True' AND timestamp IS MAX;
Run Code Online (Sandbox Code Playgroud)
AND timestamp IS MAX 是不正确的语法,导致该语句无效.
我有一个名为的表simple_data,在名为 的列中有数百万个手机号码MSISDN,但它包含重复项。
所有行都有一个FLAG设置为零的列。
我想通过将FLAG值设置为2除一行来更新所有重复的行。
CREATE TABLE `wt_simple_data` (
`SIMPLEID` int(10) NOT NULL AUTO_INCREMENT,
`CAMPID` bigint(20) NOT NULL,
`MSISDN` bigint(20) NOT NULL,
`FLAG` enum('0','1','2') DEFAULT '0' COMMENT '0 FOR NOT SENT, 1 FOR SENT',
PRIMARY KEY (`SIMPLEID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
Run Code Online (Sandbox Code Playgroud)
一些示例数据:
SIMPLEID CAMPID MSISDN FLAG
15 311 9874123411 0
16 311 9874123411 0
17 311 9874123411 0
18 311 9874123412 0
19 311 9874123412 0
20 311 9874123413 0
21 …Run Code Online (Sandbox Code Playgroud) sql-server ×6
sql ×4
c# ×2
mysql ×2
centering ×1
css ×1
foreach ×1
html ×1
int ×1
knockout-2.0 ×1
knockout.js ×1
newid ×1
port ×1
sql-update ×1
sum ×1
xml ×1