7

我正在尝试使用以下方法在 sql server 中打印一个选项卡:

select 'tab-->' + char(9) + '<--tab'

但它似乎不起作用并且总是打印

tab--> <--tab

有什么我想念的吗?

4

4 回答 4

14

如果您在 Management Studio 中对此进行测试,则Results to Grid( Ctrl+ D) 设置会将您的选项卡更改为空格...尝试切换到Results to Text( Ctrl+ T),您将看到该选项卡。

或者,您可以将您的更改selectprint

print 'tab-->' + char(9) + '<--tab'

输出...

tab-->  <--tab
于 2012-07-23T18:33:03.243 回答
1
  1. 工具 -> 选项 -> 查询结果 -> SQL Server -> 结果到网格 -> 在复制或保存时保留 CR/LF
  2. 重启 SSMS
于 2020-04-09T11:05:21.927 回答
0

关于标签的事情是它们不是恒定的宽度。制表符表示“将我带到下一个制表位”。如果您当前将制表位设置为八个字符,并且制表位在六个字符处,则制表位将只有一宽。但是,假设您持怀疑态度(一件好事!)。有更多证据表明该选项卡实际上正在输出。如果您执行类似的操作print '>' + char(9) + '<',您会注意到您不能只选择间隙中的一个空格,这表明您看到的空格是原子的。但对我来说更有说服力的是将其粘贴到允许您查看选项卡的编辑器中。我使用 vim,但使用任何你喜欢的。在我测试的所有情况下,制表符都出现了。

于 2012-07-23T18:59:58.433 回答
0

每个Char(9)orchar(160)都转换为一个空格。如果你对齐 char(9)+char(9)+char(9) => 你仍然只有 1 个空格。

所以我尝试了这些:

<"something"+char(9)+char(160)+char(9)+char(160)+char(9)+char(160)+char(9)+char(160)"something">

返回something[8 spaces here]something(每个 char9 或 char16 被一个空格替换)

视觉上,我得到了我想要的……

于 2013-03-13T10:52:23.467 回答