小编Cad*_*oux的帖子

为什么Oracle 9i将空字符串视为NULL?

我知道它确实考虑过'' NULL,但这并没有太多告诉我为什么会这样.据我所知,SQL规范''与NULL- 不一样- 一个是有效数据,另一个是缺少相同的信息.

随意推测,但请说明是否是这种情况.如果甲骨文的任何人都能评论它,那就太棒了!

sql string oracle null

206
推荐指数
4
解决办法
7万
查看次数

201
推荐指数
6
解决办法
28万
查看次数

更好的修剪SQL Server中前导零的技术?

我一直在使用一段时间:

SUBSTRING(str_col, PATINDEX('%[^0]%', str_col), LEN(str_col))
Run Code Online (Sandbox Code Playgroud)

但是最近,我发现所有"0"字符的列都有问题,例如'00000000',因为它永远找不到匹配的非"0"字符.

我见过的另一种技术是使用TRIM:

REPLACE(LTRIM(REPLACE(str_col, '0', ' ')), ' ', '0')
Run Code Online (Sandbox Code Playgroud)

如果存在嵌入空格,则会出现问题,因为当空格变回"0"时,它们将变为"0".

我试图避免使用标量UDF.我在SQL Server 2005中发现了很多UDF的性能问题.

sql t-sql sql-server string sql-server-2005

150
推荐指数
5
解决办法
24万
查看次数

在调试期间在SSIS中监视变量

我在SSIS中有一个项目,并且我添加了一个执行SQL任务,它将结果发送给变量.我想确认该值,因为我担心它会尝试将其写为结果集对象而不是实际整数(在这种情况下,我将返回COUNT).

我的第一个想法是在调试模式下运行它并将全局变量添加到我的Watch窗口.不幸的是,当我右键单击Watch窗口时,"Add Variable"选项显示为灰色.我在这里错过了什么?

我已经开始确认我的变量设置正确,所以我对像脚本放入一个带有值或其他类似的MsgBox的方法不感兴趣.为了将来参考,我希望能够在调试模式下观察变量.如果对此存在某种限制,那么我想知道如果有人知道的话,这一切是什么以及为什么.

这个和每个"教程"的帮助是非常不合适的,我只能说,"将变量添加到Watch窗口并进行调试",好像这样做一定不会有问题.

感谢您的任何见解!

sql debugging ssis sql-server-2005 watch

76
推荐指数
3
解决办法
15万
查看次数

如何在SELECT FOR XML查询中选择返回的列名?

MS SQL有一个方便的解决方法,用于将多行的列值连接成一个值:

SELECT col1
 FROM table1
 WHERE col2 = 'x'
 ORDER by col3
 FOR XML path('')
Run Code Online (Sandbox Code Playgroud)

并返回一个很好的记录集:

XML_F52E2B61-18A1-11d1-B105-00805F49916B                                     
---------------------------------------- 
<col1>Foo</col1><col1>Bar</col1>
Run Code Online (Sandbox Code Playgroud)

只返回记录集中的列名是相当讨厌的!

列名似乎包含随机元素(或GUID),因此我不愿意在我的应用程序中使用它(不同的实例或不同的服务器可能有另一个GUID).不幸的是我无法使用*来选择值,并且由于现有应用程序中的限制,我无法迭代返回的列,或者......

有没有办法强制返回的记录集中的列名更合理?

xml sql sql-server sql-server-2005

48
推荐指数
2
解决办法
4万
查看次数

SQL Server截断和8192限制

在SQL Server 2005中,我试图查询varchar(MAX)列,其中包含一些文本数据超过8192的行.但是,在管理工作室中,我有工具 - >选项 - >查询结果 - >结果到文本 - >每列中显示的最大字符数= 8192,这是最大值.因此,看起来这些行的截断仅仅是由于文本输出所施加的限制.

我唯一能看到的就是使用SUBSTRING函数来获取前8000个字符,然后是接下来的8000个字符等等.但这很丑陋且容易出错.

我应该提一下,SSIS和BCP不是我的选择.

有人有更好的建议吗?谢谢!

sql-server truncation

48
推荐指数
5
解决办法
5万
查看次数

T-SQL,在单个选择中更新多个变量

是否可以在单个选择中更新多个局部变量?

就像是:

set
    @variableOne = avg(someColumn),
    @variableTwo = avg(otherColumn)
    from tblTable
Run Code Online (Sandbox Code Playgroud)

对于像这项任务一样简单的事情,做两个单独的选择操作似乎有点浪费:

set @variableOne = ( select avg(someColumn) from tblTable )
set @variableTwo = ( select avg(otherColumn) from tblTable )
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

45
推荐指数
2
解决办法
5万
查看次数

将Oracle序列重置为现有列中下一个值的最佳方法?

出于某种原因,过去的人不使用sequence.NEXTVAL插入数据.因此,当我使用sequence.NEXTVAL来填充表时,我得到了PK违规,因为该数字已在表中使用.

如何更新下一个值以使其可用?现在,我只是一遍又一遍地插入,直到它成功(INSERT INTO tbl (pk) VALUES (sequence.NEXTVAL)),然后同步下一个.

sql oracle primary-key sequence oracle10g

44
推荐指数
5
解决办法
11万
查看次数

如何在不删除SQL 2008中的表的情况下更改列

当我将列类型从int更改为real时,为什么SQL 2008突然想要删除我的表?据我所知,这在SQL 2005中从未发生过.任何见解都会有所帮助.

sql-server column-types sql-server-2008

43
推荐指数
3
解决办法
8万
查看次数

有没有办法同时SELECT和UPDATE行?

我想基于一个简单的标准更新一组行,并获取已更改的PK列表.我以为我可以做这样的事情,但我担心可能的并发问题:

SELECT Id FROM Table1 WHERE AlertDate IS NULL;
UPDATE Table1 SET AlertDate = getutcdate() WHERE AlertDate IS NULL;
Run Code Online (Sandbox Code Playgroud)

如果包含在事务中,是否存在可能发生的并发问题?或者有更好的方法吗?

sql t-sql sql-server sql-server-2008

41
推荐指数
5
解决办法
9万
查看次数