我NVARCHAR(10)
在表格中有一列.它可以存储任何类型的UNICODE字符串.
我想用'0'替换每个不同于'1'的字符.
假设我有字符串'012345C18*'.我应该得到'0100000100'.
我设法使用一个帮助表来完成它,该表包含从1到我的列(10)大小的索引,如下所示:
CREATE TABLE HELP(Idx INT)
INSERT INTO HELP
SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 10
DECLARE @myStr VARCHAR(10)
SET @myStr = '012345C18*'
SELECT STUFF((SELECT '' + CASE(B.Ch) WHEN '1' THEN '1' ELSE '0' END FROM (
SELECT SUBSTRING(A.Val,H.Idx,1) AS Ch
FROM
(SELECT @myStr AS Val) A
CROSS JOIN HELP H
)B FOR XML …
Run Code Online (Sandbox Code Playgroud) 我正在尝试dotx
使用OpenXML
2.5库从单词模板(。)创建一个.docx文件。更确切地说,我想跟随这个,但我想用一个打开文档MemoryStream
的文件,而不是路径。
因此,在上面的链接中,方法是这样的:将模板文件复制到磁盘上的新文件中。以打开新文件WordProcessingDocument
,将其类型更改为Document并添加对模板的引用(我不确定为什么这样做是必要的...)
我需要的是。从数据库获取我的模板作为字节数组。将数组复制到流中,并以形式打开WordProcessingDocument
。然后执行与上述相同的操作。我不想在磁盘上使用临时文件,等等。我不明白的是为什么我应该在新文档中引用模板文件(实际上,检查docx存档中的xml文件,它只是添加了一个包含模板名称的xml节点...为什么?)
现在,我的问题是,如果我使用a MemoryStream
而不是文件的物理路径,则导致docx损坏。我收到“ Microsoft Office无法打开此文件,因为某些部分丢失或无效 ”。如果我使用临时磁盘文件,则可以使用。为什么会这样呢?
简化后,我的代码如下所示:
byte[] result = null;
byte[] templateBytes = System.IO.File.ReadAllBytes("template.dotx");
using (MemoryStream templateStream = new MemoryStream())
{
templateStream.Write(templateBytes, 0, (int)templateBytes.Length);
using (WordprocessingDocument doc = WordprocessingDocument.Open(templateStream, true))
{
doc.ChangeDocumentType(WordprocessingDocumentType.Document);
var mainPart = doc.MainDocumentPart;
//Here I should create an AttachedTemplate object and assign a relationship id to it, which also implies
//setting a "reference" to the template ? I'm not …
Run Code Online (Sandbox Code Playgroud) 我刚开始深入研究SQL Server,我遇到了问题.我必须将一行转换为一列,但我无法弄明白.
该行看起来像这样:
Columns: T1 T2 T3 .........T20
Values: 1 0 9 ......... 15
Run Code Online (Sandbox Code Playgroud)
我想收到这样的东西:
Col Val
________
T1 1
T2 0
T3 9
........
T20 15
Run Code Online (Sandbox Code Playgroud)
我知道我必须使用一个支点,我已经读过这个,但无法弄明白
我有一个DataTable
看起来像这样:
ID Name DateBirth
.......................
1 aa 1.1.11
2 bb 2.3.11
2 cc 1.2.12
3 cd 2.3.12
Run Code Online (Sandbox Code Playgroud)
哪个是删除具有相同ID的行的最快方法,以获得类似的内容(保留第一个出现,删除下一个):
ID Name DateBirth
.......................
1 aa 1.1.11
2 bb 2.3.11
3 cd 2.3.12
Run Code Online (Sandbox Code Playgroud)
我不想双重传递表行,因为行号很大.我想尽可能使用一些LinQ,但我想这将是一个大问题,我必须使用比较器.
我遇到了麻烦,我需要快速回答.
我有一张表,其中我的列只包含奇数和偶数.
我想首先选择orderByColumn
包含奇数的行,然后将结果添加到"偶数查询"
我的桌子看起来像这样
col1 col2 orderByColumn col4
...................................
c c 44 c
c c 45 c
c c 46 c
...................................
...................................
Run Code Online (Sandbox Code Playgroud)
我想我应该建立一个联盟,我认为这看起来像这样:
select * from myTable
where [orderByColumn] % 2 = 0 --order by [orderByColumn]-->error
UNION
select * from myTable
where [orderByColumn] % 2 > 0 order by [orderByColumn]
Run Code Online (Sandbox Code Playgroud)
查询确实联合了2个选择,但很明显,它们是合并的顺序orderByColumn
,我不想这样做.
我希望结果看起来像这样:
c c 44 c
c c 46 c
c c 48 c
........
c c 45 c
c c 47 c
c c …
Run Code Online (Sandbox Code Playgroud) 如何将十六进制/多数字的重要部分作为字符串?
例如,如果我有0x00000321321,我想得到"321321".
如果我尝试类似的东西:
ulong x = 0x0000023632763;
string s = x.toString();
Run Code Online (Sandbox Code Playgroud)
我知道593700707
,所以这不是我想要的.
那可能吗 ?
谢谢!
c# ×2
sql ×2
sql-server ×2
char ×1
chars ×1
corrupt ×1
datatable ×1
difference ×1
docx ×1
filtering ×1
linq ×1
memorystream ×1
openxml-sdk ×1
pivot ×1
replace ×1
string ×1
templates ×1
ulong ×1
unpivot ×1