标签: t-sql

当proc为null时,stored proc返回所有行

当可选参数为null或为空时,如何忽略该条件?例如

declare @color nvarchar(50)
declare @time datetime

set @color = null

select * 
  from apples 
 where apple.color = @color 
   and apple.time = @time
Run Code Online (Sandbox Code Playgroud)

如果@color或@time为null,我想忽略这个条件.

sql t-sql sql-server stored-procedures

0
推荐指数
1
解决办法
2483
查看次数

sql简单查询

昨天我的朋友问了我一个关于这个查询的问题:

select * from user where 1=1 
Run Code Online (Sandbox Code Playgroud)

我说查询不正确,但他说这是正确的.我不明白这个查询是如何正确的.该where 1 = 1部件如何工作?

sql t-sql where

0
推荐指数
2
解决办法
364
查看次数

这个SQL有什么问题?

SQL是:

execute ('delete from HttpRequests where Date < ''2009-08-' + convert(nvarchar(max), 0) + '''')
Run Code Online (Sandbox Code Playgroud)

错误是

Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'convert'.
Run Code Online (Sandbox Code Playgroud)

注释掉转换部分会删除错误.怎么了?

sql t-sql sql-server

0
推荐指数
1
解决办法
268
查看次数

如果没有id,则保持字符的排序(SQL Server 2005)

我有以下内容

个字符

A
C
W
B
J
M
Run Code Online (Sandbox Code Playgroud)

如何插入一些序列号,以便在插入数字后字符的顺序不会改变?

我的意思是如果我使用row_number(),输出字符顺序就会改变

select 
ROW_NUMBER() over(order by chars) as id,
t.* from @t t
Run Code Online (Sandbox Code Playgroud)

输出:

id chars

1   A
2   B
3   C
4   J
5   M
6   W
Run Code Online (Sandbox Code Playgroud)

我期望的期望是

id chars

1   A
2   C
3   W
4   B
5   J
6   M
Run Code Online (Sandbox Code Playgroud)

此外,我不能使用任何身份字段,id int identity因为我在查询的中间,我需要维护内部联接以实现某些目标.

我希望我能清楚自己.

请帮忙.提前致谢

t-sql sql-server sql-server-2005

0
推荐指数
1
解决办法
60
查看次数

删除并重新创建表...以避免索引问题?

我正在与DBA发生一个有趣的争论,他坚持认为不应该在T-SQL中使用DELETE命令,而是删除数据的正确方法是将您想保留的数据移动到临时表中,并删除并重新创建原始表.给出的理由是它应该防止索引碎片问题.

有没有人听说这是一种做法,任何人都可以提出为什么这可能是一个好主意?这是一个相当复杂的结构,我们通常会讨论用于无限期聚合数据的表的少量选择性删除(图中,一次少于1000行).

我无法想象这样做的理由,而不是简单地在适当的时候重新组织/重建索引,但如果我错过了什么,我会很乐意接受教育.谢谢!

sql t-sql indexing

0
推荐指数
1
解决办法
526
查看次数

从数字中获取小数值的可靠方法是什么?

我有许多类型Decimal(8, 2),并一直Substring用于获得小数值.

E.g.)
    declare @val decimal(8, 2), @strVal varchar(10)
    set @val = 15.80
    set @strVal = cast(@val as varchar)
    select  @val, substring(@strVal, charindex('.', @strVal), len(@strVal))
Run Code Online (Sandbox Code Playgroud)

有没有更好的方式来简单地得到分数值,.80@val而无需将其转换为一个字符?
我想知道是否有一个内置的UDF(用户定义函数)可以解析而不必推出我自己的版本.

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

0
推荐指数
1
解决办法
7696
查看次数

以不同的参数值执行以编程方式存储的过程

我有存储过程getList(@date datetime)

如何以编程方式执行差异日期时间值的存储过程.

每个月的日期时间为3年.

t-sql

0
推荐指数
1
解决办法
272
查看次数

如何从列获取最新记录日期

我想在表格中返回最新添加记录的日期和ID.任何人都可以建议正确查询该PLZ.我们正在使用sqlServer

SELECT [BGArx_ID], [BGArx_PUBLISHED_DATE]      
FROM TECH_ARTICLES   
WHERE [BGArx_PUBLISHED_DATE] = ???
Run Code Online (Sandbox Code Playgroud)

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

0
推荐指数
1
解决办法
3580
查看次数

Sql选择查询与多列的位置

我有一张简单的桌子

CREATE TABLE  a(
    id int IDENTITY(1,1) NOT NULL,
    x varchar(50) 
)
Run Code Online (Sandbox Code Playgroud)

我发现以下查询有效

select cast (id as varchar(3))+cast (x as varchar(3)) c from a 
where cast (id as varchar(3))+cast (x as varchar(3))='1a'
Run Code Online (Sandbox Code Playgroud)

但这不起作用

select cast (id as varchar(3))+cast (x as varchar(3)) c from a 
where c='1a'
Run Code Online (Sandbox Code Playgroud)

有人知道那是为什么吗?请不要因为某些原因我不想使用

where id=1 and x ='a'
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server string

0
推荐指数
1
解决办法
1595
查看次数

SQL Server:将更多整数存储在单个值中

我不知道如何解释这个,所以我会用一个例子.

我必须在我的SQL Server表中的一个值/列中存储(等)一些用户ID,因此一个值看起来像这样"4231 3271 3722 7432 4831 3192".当然这可以存储为text,char,nchar,nvarchar和som.但哪个最好?如果我只需要存储整数(以及将它们分开的东西)?

那么在单个SQL Server单元中存储多个整数值的最佳方法是什么?

而且你不必向我发送任何替代方法,因为这只是一个例子,它是唯一正确的方法,即使我必须使用varchar :)

sql t-sql sql-server

0
推荐指数
1
解决办法
3508
查看次数