我有一个表,我希望从每个ID的3个(也是3个)列中找到第一个非空值,从Col1开始,然后到Col2,再到Col3
注意:Col3永远不会为空
ID Col1 Col2 Col3
------------------------------
1 A B X
2 NULL C X
3 NULL NULL X
4 D NULL X
Run Code Online (Sandbox Code Playgroud)
要为每个值获取正确的列,请使用以下SQL Select
SELECT ID,
COALESCE(Col1, Col2, Col3) AS Col
FROM MyTable
Run Code Online (Sandbox Code Playgroud)
返回以下内容并且工作得很好
ID Col
-------------
1 A
2 C
3 X
4 D
Run Code Online (Sandbox Code Playgroud)
我想要的是返回的第三列,指示合并成功的列.以下是我希望生成的结果集:
ID Col Source
-----------------------
1 A Col1
2 C Col2
3 X Col3
4 D Col1
Run Code Online (Sandbox Code Playgroud) 我有一个自定义的Qt小部件,我用来显示反汇编,我希望添加语法着色.
目前,我只是将其设置QPen为纯色,构造我想要显示的文本,并将其渲染到QPainter适当的坐标.
问题是,添加语法着色的最佳方法是什么?我想到了一些:
std::pair<QColor, QString>,然后我可以简单地迭代列表设置颜色并绘制文本,因为我从列表的前面弹出项目.我知道我列出的3种方法中的每一种都在技术上有效,但我正在寻找一种非常有效的解决方案.这段代码将被大量调用.由于这是一个交互式调试器,如果此代码速度很慢,快速踩踏或跟踪的人会看到明显的减速.
编辑:我知道QSyntaxHighlighter和QTextDocument.主要问题是这些通常不能很好地满足我的目的.我有几个列都有分隔线,可以来回滑动.为了给你一个想法,这是我的调试器截图的链接.正如您所看到的,它根本不像文本文档.实际上它更接近列表或表格.但是已经有一堆定制绘图正在进行,使得正常QTextDocument有点不切实际.
编辑:我是不正确的,似乎QTextDocument可以直接渲染到QPainter.看起来像我需要的!
编辑:目前还不清楚如何控制在哪里,如何QTextDocument或QTextLayout将绘制QPainter.我试图用它们无济于事.因此,如果有人可以提供一个基本的例子,那将非常有帮助.
编辑:我最终能够得到我想要的东西,使用这样的东西:
painter.setPen(default_color);
QTextDocument doc;
doc.setDefaultFont(font());
doc.setDocumentMargin(0);
doc.setPlainText(text);
highlighter_->setDocument(&doc);
painter.save();
painter.translate(x, y);
QAbstractTextDocumentLayout::PaintContext context;
context.palette.setColor(QPalette::Text, painter.pen().color());
doc.draw(&painter, context);
painter.restore();
Run Code Online (Sandbox Code Playgroud) 当我运行"svn propedit svn:ignore." 在我的svn存储库的根目录下,我收到此错误:svn:不一致的行结束样式
我试图运行这个脚本:http : //blog.eflow.org/archives/130运行dos2unix并在所有文件上设置eol样式,但是这个问题仍然存在.知道什么可能是错的吗?
我想知道是否有办法提高计算斜率的准确性.(这想出了几个月前在这里).
似乎通过改变:
float get_slope(float dXa, float dXb, float dYa, float dYb) {
return (dXa - dXb)/(dYa - dYb);
}
Run Code Online (Sandbox Code Playgroud)
至
float get_slope(float dXa, float dXb, float dYa, float dYb) {
return dXa/(dYa - dYb) - dXb/(dYa - dYb);
}
Run Code Online (Sandbox Code Playgroud)
可能是一种进步.建议?
编辑:我追求的是精确度,而不是效率.
我正在尝试将UITextView或UITextField的内容作为参数发送到php文件
NSString *urlstr = [[NSString alloc] initWithFormat:@"http://server.com/file.php?name=%@&tags=%@&entry=%@",nameField.text, tagsField.text, dreamEntry.text];
Run Code Online (Sandbox Code Playgroud)
当我记录urlstr时,只要UITextView或UITextField不包含空格,url格式就可以了.我如何将空间转换为%20?
编辑
这是目前的代码,它不仅崩溃,而且没有正确编码url.
name = John Doe&tags =经常出现的梦魇和入口=测试测试测试
转换为
name = John -1844684964oe&tags = recurringightmare&entry = Testing 4.214929e-307sting -1.992836e + 00sting
- (IBAction)sendButtonPressed:(id)sender
{
NSString *urlString = [[NSString alloc] initWithFormat:@"http://server.com/file.php?name=%@&tags=%@&entry=%@", nameField.text, tagsField.text, dreamEntry.text];
NSString *encodedString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [[NSURL alloc] initWithString:encodedString];
NSLog(encodedString);
NSLog(urlString);
[urlString release];
[url release];
[encodedString release];
}
Run Code Online (Sandbox Code Playgroud) 是否可以通过互联网使用Source Safe?
你会这样做吗?
我需要导入一些XML模式.
在Delphi中,我将使用XML数据绑定向导从模式生成Pascal代码.Delphi Prism中
有类似的东西可以避免编写所有这些样板代码吗?
如何在sysobjects上进行选择时获得SCHEMA?
我正在修改一个名为SearchObjectsForText的存储过程,它只返回Name,但我还想包含SCHEMA.
现在它正在做类似的事情:
SELECT DISTINCT name
FROM sysobjects
Run Code Online (Sandbox Code Playgroud)
我想知道需要加入哪些表来为每个'name'返回SCHEME.
从字面上看,每次我运行一个大丑陋的网站项目时,我都会收到一条UnauthorizedAccessException,其中有一条指向DLL的消息,例如Temporary ASP.NET Files\ctheweb\0d76d363\4695c81f\App_Web_vi6bbbpy.dll' is denied. 我然后停止并重新启动项目,它运行正常.我做了一些测试,调试,修复,再次运行,然后再次出错.
我倾向于添加一个预构建命令来清除该目录,但我总是更喜欢用锤子以外的东西来解决问题,至少最初是这样.
是否可以调用JVM的内置本机代码,即java.lang和java.io中各种类调用的代码?换句话说,您是否可以绕过内置的Java API来访问各种系统级调用,例如文件系统访问?我知道我可以通过构建我自己的本机代码库并通过JNI调用它来实现这一点,但是对于已经内置到JVM中的功能而言,不需要额外的本机库也是优雅的.
sql ×2
sql-server ×2
t-sql ×2
asp.net ×1
c++ ×1
coalesce ×1
delphi ×1
delphi-prism ×1
iphone ×1
java ×1
jvm ×1
line-endings ×1
native ×1
nsstring ×1
precision ×1
qpainter ×1
qt ×1
svn ×1
uitextfield ×1
uitextview ×1
urlencode ×1
xml ×1
xsd ×1