我正在研究从SQLServer数据库读取以生成提取文件的SQL查询.从特定字段中删除前导零的要求之一,这是一个简单的VARCHAR(10)字段.因此,例如,如果字段包含'00001A',则SELECT语句需要将数据返回为'1A'.
SQL中有没有办法以这种方式轻松删除前导零?我知道有一个RTRIM功能,但这似乎只是删除空格.
在我的应用程序(ASP.NET,C#)中,我需要每天在一组预定义的时间间隔内运行存储过程.所以我创建了一个sql作业并安排了相同的工作.但问题是,可以选择使用应用程序创建/修改此时间间隔,这会将修改后的时间间隔存储在表中.所以我需要在用户配置的时间间隔内运行存储过程.
现在我正在执行以下步骤来解决此问题.
这工作正常,但存储过程将每分钟执行一次(希望有人遇到同样的问题).
寻找更好的解决方案来解决这个问题.
我的项目是使用spring-boot web socket和嵌入式tomcat来实现聊天服务器。一切正常,但有时我收到 EOFException,然后客户端无法向聊天服务器发送消息,直到我重新启动 tomcat,然后一切正常。我不知道什么时候会发生 EOFException。请帮助我
[TRACE] 2017-10-23 06:17:10.707 [http-nio-7755-exec-4] NativeWebSocketSession - 发送 TextMessage payload=[{"result":...], byteCount=164, last=true], StandardWebSocketSession [id=42b, uri=/chat] [DEBUG] 2017-10-23 06:17:29.670 [http-nio-7755-exec-8] LoggingWebSocketHandlerDecorator - StandardWebSocketSession[id=42b, uri=/chat] 中的传输错误java.io.EOFException: 在 org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.fillReadBuffer(NioEndpoint.java:1242) ~[tomcat-embed-core-8.5.16.jar!/:8.5.16] 处为 null在 org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.read(NioEndpoint.java:1182) ~[tomcat-embed-core-8.5.16.jar!/:8.5.16] 在 org.apache.tomcat。 websocket.server.WsFrameServer.onDataAvailable(WsFrameServer.java:72) ~[tomcat-embed-websocket-8.5.16.jar!/:8.5.16] 在 org.apache.tomcat.websocket.server。WsFrameServer.doOnDataAvailable(WsFrameServer.java:171) ~[tomcat-embed-websocket-8.5.16.jar!/:8.5.16] at org.apache.tomcat.websocket.server.WsFrameServer.notifyDataAvailable(WsFrameServer.java:151) ) ~[tomcat-embed-websocket-8.5.16.jar!/:8.5.16] 在 org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.upgradeDispatch(WsHttpUpgradeHandler.java:148) [tomcat-embed-websocket-8.5 .16.jar!/:8.5.16] 在 org.apache.coyote.http11.upgrade.UpgradeProcessorInternal.dispatch(UpgradeProcessorInternal.java:54) [tomcat-embed-core-8.5.16.jar!/:8.5.16 ] 在 org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:53) [tomcat-embed-core-8.5.16.jar!/:8.5.16] 在 org.apache.coyote.AbstractProtocol$ConnectionHandler.process( AbstractProtocol.java:868) [tomcat-embed-core-8.5.16.jar!/:8.5.16] 在 org.apache.tomcat.util。net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455) [tomcat-embed-core-8.5.16.jar!/:8.5.16] 在 org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase. java:49) [tomcat-embed-core-8.5.16.jar!/:8.5.16] 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_131] 在 java。 util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_131] 在 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed -core-8.5.16.jar!/:8.5.16] …
您可以参考以下查询以获取相同的信息-
select FirstName +' '+ MiddleName +' ' + Lastname as Name from TableName.
Run Code Online (Sandbox Code Playgroud)
select CONCAT(FirstName , ' ' , MiddleName , ' ' , Lastname) as Name from
TableName
Run Code Online (Sandbox Code Playgroud)
select Isnull(FirstName,' ') +' '+ Isnull(MiddleName,' ')+' '+ Isnull(Lastname,' ')
from TableName.
Run Code Online (Sandbox Code Playgroud)
注意:如果所有列都具有某个值(如果任何人为null或为空),则第1点查询将返回所有值,那么它将为所有返回null,这意味着Name将返回“ NULL”值。
为避免点号1,可以使用点号2或点号3-
我们可以使用IsNull或CONCAT关键字来获得相同的结果。
如果任何人包含空值,那么''(空格)将添加下一个值。
我有一个要求,我想使用C#代码将字节数组存储在Varbinary类型的sql服务器表列中。现在,当我尝试执行此操作时,我在sql server表中 "0x4A6974656E6472612053616E6B686C61"获得了一个字节数组值a[] = { 74, 105, 116, 101, 110, 100, 114, 97, 32, 83, 97, 110, 107, 104, 108, 97}。我不确定如何做到这一点。我得到的值实际上是每个十进制数字的十六进制表示形式。
就像sql server在将字节数组存储到varbinary sql table列时执行一些内部转换一样吗?
我在这里查看了大多数正则表达式的问题,但没有一个与我的具体情况相符.
说我有一个字符串: "ABe(CD)(EF)GHi"
我想要: "A", "Be", "(CD)", "(EF)", "G", "Hi"
我试过了:
.split("(?=[A-Z\\(\\)])"), which gives me: "A", "Be", "(", "C", "D", ")", "(", "E", "F", ")", "G", "Hi".
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
检查以下脚本
SELECT getdate() CurrentDate,getdate()+getdate() NewDate
Run Code Online (Sandbox Code Playgroud)
结果是:
CurrentDate NewDate
2016-04-04 13:57:51.713 2132-07-08 03:55:43.427
Run Code Online (Sandbox Code Playgroud)
我的问题是,为什么年份是2132年,而月份是07年新日期字段.
table1在SQL Server 2008实例中将记录插入我的表时,我收到以下错误
消息2627,级别14,状态1,行1
违反UNIQUE KEY约束'IX_table1'.无法在对象'dbo.table1'中插入重复键.
但是在执行相同的查询SQL Server 2014(上述数据库的副本)时,我在错误消息中得到了一些区别
消息2627,级别14,状态1,行2
违反UNIQUE KEY约束'IX_table1'.无法在对象'dbo.table1'中插入重复键.
重复键值为(xxx,).
在2014年,错误消息指定消息(The duplicate key value is xxx)中的重复值,但在2008年它没有.
为什么这个?这是2014年的新功能吗?或者有任何设置来更改/格式化错误消息?