在尝试识别错误数据时(通常需要手动查看和删除),我想要一种简单的方法来查看隐藏的字符,例如TAB,空格,回车符和换行符.这有内置的方式吗?
在这里关于stackoverflow的类似问题中,关于Oracle,建议使用DUMP(fieldname)函数,但我不知道即使SQL Server中存在相应的函数,这是否会使事情变得更容易,因为我需要查看字符在他们的背景下.
我能提出的最好的想法是用可见的替换预期的隐藏字符,如下所示:
SELECT REPLACE(REPLACE(REPLACE(REPLACE(myfield, ' ', '?'), CHAR(13), '[CR]'), CHAR(10), '[LF]'), CHAR(9), '[TAB]') FROM mytable
有没有更好的办法?我不喜欢这种方式,因为可能有其他不太常见的隐藏字符,我没有考虑,如垂直TAB等...打开"显示隐藏的字符",你几乎可以在任何文本编辑器中,在SQL Server查询分析器中这将是一个很好的功能,所以我几乎可以期望它可以在SQL服务器中以某种方式完成...或者至少有人有比我更好的想法,以显示这种白色空间信息.
我只是注意到有一种内置的方式来查看"空白",而不是在SQL查询分析器中,而是在曾经是SQL Enterprise管理器的界面部分.右键单击SQL Management Studio对象资源管理器树中的表,然后选择"编辑前200行".在结果中,空白区域(至少CR LF)作为空方块可见.
在工作中,我们最近从Microsoft SQL Server 7升级到SQL 2005.数据库引擎更加先进,但管理工作室在很多方面都非常糟糕.我们的大多数开发人员都认为他们更喜欢坚持使用旧的查询分析器工具,即使它有很多限制.
在业余时间,我决定为查询分析器/管理工作室编写一个替代品,完成开发人员最需要做的事情.我终于获准免费发布它:Versabanq Squel(versabanq.com/squel).
就像我说的那样,它是免费的,所以这不是销售宣传.但它让我思考.我想知道的是:大多数人对SQL Studio的满意程度如何?人们只是使用它,因为这是微软推动它们的吗?那里有很多人在寻找更好的东西吗?如果看起来可能有更广泛的兴趣,也许我可以得到一些长期发展的支持.
顺便说一句,请查看SQL Server Management Studio Alternatives,这是其他人之前关于此主题的问题.我所看到的是,令人惊讶的选择很少.你为什么这么认为?
我需要使用MS Query Analyzer输出文本字段的内容.我试过这个:
select top 1 text from myTable
Run Code Online (Sandbox Code Playgroud)
(文字是一个text
字段)
和
DECLARE @data VarChar(8000)
select top 1 @data = text from myTable
PRINT @data
Run Code Online (Sandbox Code Playgroud)
第一个只打印前2000个左右的字符,第二个只打印前8000个字符.有没有办法得到所有的文字?
笔记:
我有一系列由特殊的查询分析器批处理分隔符关键字分隔的T-SQL语句:
GO
Run Code Online (Sandbox Code Playgroud)
如果一个批次失败,我需要查询分析器不尝试后续批次 - 我希望它停止处理一系列批次.
例如:
PRINT 'This runs'
go
SELECT 0/0, 'This causes an error'
go
PRINT 'This should not run'
go
Run Code Online (Sandbox Code Playgroud)
输出:
This runs
Server: Msg 8134, Level 16, State 1, Line 2
Divide by zero error encountered.
This should not run
Run Code Online (Sandbox Code Playgroud)
可能?
实际使用中的一个例子可能是:
sp_rename 'Shelby', 'Kirsten'
go
DROP VIEW PeekAView
go
CREATE VIEW PeekAViewAS
SELECT * FROM Kirsten
go
Run Code Online (Sandbox Code Playgroud) 我正在使用 MS SQL Server。
当我定义数据库模式时,我定义了一个(非物化)视图,其中包括许多字段,例如如下(其中“Topic”是表的名称,视图是Topic表上的自联接) :
CREATE VIEW View_Topic_Ancestor AS
SELECT
Subordinate.Id AS Subordinate_Id,
Subordinate.Folder_Id AS Subordinate_Folder_Id,
Subordinate.topicTitle AS Subordinate_topicTitle,
Subordinate.topicXhtml AS Subordinate_topicXhtml,
Subordinate.crossLinked AS Subordinate_crossLinked,
Superior.Id AS Superior_Id,
Superior.topicTitle AS Superior_topicTitle,
Superior.topicXhtml AS Superior_topicXhtml,
Superior.crossLinked AS Superior_crossLinked
FROM Topic AS Subordinate LEFT OUTER JOIN Topic AS Superior
ON Superior.Folder_Id = Subordinate.Folder_Id
AND
Superior.LeftValue = (SELECT MAX(Ancestor.LeftValue)
FROM Topic AS Ancestor
WHERE Subordinate.LeftValue > Ancestor.LeftValue
AND Subordinate.LeftValue < Ancestor.RightValue
AND Subordinate.Folder_Id = Ancestor.Folder_Id)
Run Code Online (Sandbox Code Playgroud)
稍后(在运行时)我在 select 语句中使用此视图,如下所示:
SELECT
T.Id AS Shared_Id, …
Run Code Online (Sandbox Code Playgroud) 我正在使用 ElasticSearch 1.5.2。我想允许在我的搜索引擎中搜索短语。
假设文本是
read with section 114 of the Indian Penal Code
使用默认分析器,我无法在搜索查询中获得任何结果
section 114 penal code
所以,我添加了一个分析器:
XContentBuilder settingsBuilder = XContentFactory.jsonBuilder()
.startObject()
.startObject("analysis")
.startObject("filter")
.startObject("filter_shingle")
.field("type","shingle")
.field("max_shingle_size",2)
.field("min_shingle_size",2)
.field("output_unigrams",false)
.endObject()
.startObject("filter_stemmer")
.field("type","porter_stem")
.field("language","English")
.endObject()
.endObject()
.startObject("tokenizer")
.startObject("my_ngram_tokenizer")
.field("type","nGram")
.field("min_gram",1)
.field("max_gram",1)
.endObject()
.endObject()
.startObject("analyzer")
.startObject("ShingleAnalyzer")
.field("tokenizer","my_ngram_tokenizer")
.array("filter","snowball","standard","lowercase","filter_stemmer","filter_shingle")
.endObject()
.endObject()
.endObject()
.endObject();
client.admin().indices()
.prepareCreate("temp_index").setSettings(settingsBuilder).get();
Run Code Online (Sandbox Code Playgroud)
我正在索引文件(已经是可接受的 json 格式),如下所示:
String file1 = readFile("1.txt");
IndexResponse response1 = client.prepareIndex("new_index","docs").setSource(file1).execute().actionGet();
Run Code Online (Sandbox Code Playgroud)
并使用matchQuery
这样的方式进行查询:
MatchQueryBuilder mqb1 = QueryBuilders.matchPhraseQuery("text", str).analyzer("ShingleAnalyzer");
SearchResponse matchResponse1 = client.prepareSearch().setQuery(mqb1).execute().actionGet();
Run Code Online (Sandbox Code Playgroud)
但我仍然没有得到任何结果。你能建议我该怎么做吗?
编辑:实际上,当我尝试从这个分析器中获取任何类型的结果时,我没有得到任何结果......即使有一个查询“部分”,它存在于我索引的所有文档中,我没有得到结果,而,当我使用默认分析器进行搜索时,我得到了一些结果。那么,这个分析仪是不工作还是什么?
编辑:示例文档, …
从SQL Server 2000将数据导出到Excel的最简单方法是什么?
我想从我可以输入查询分析器的命令中执行此操作.
我希望列名出现在第1行.
无法正确使用lucene的关键字分析器,
String term = "new york";
// id and location are the fields in which i want to search the "term"
MultiFieldQueryParser queryParser = new MultiFieldQueryParser(
Version.LUCENE_30,
{"id", "location"},
new KeywordAnalyzer());
Query query = queryParser.parse(term);
System.out.println(query.toString());
Run Code Online (Sandbox Code Playgroud)
结果:(id:新位置:新)(id:约克 位置:约克)
预期结果:(id:纽约 地点:纽约)(id:纽约 地点:纽约)
请帮助我确定我在这里做错了什么?
使用SQL Server 2005,在几个大表上有一个SQL查询,它在程序中超时.但是,当我在查询分析器中运行它时,它在大约30秒内完成.
为什么不同?
是否有Microsoft SQL Server CE 4的查询分析器或分析器?
query-analyzer ×10
sql-server ×6
sql ×3
lucene ×2
analyzer ×1
database ×1
hidden ×1
java ×1
keyword ×1
performance ×1
ssms ×1
view ×1