标签: sql-server

在SQL中,如何在范围内"分组"?

假设我有一个带有数字列的表(让我们称之为"得分").

我想生成一个计数表,显示每个范围内出现的分数.

例如:

score range  | number of occurrences
-------------------------------------
   0-9       |        11
  10-19      |        14
  20-29      |         3
   ...       |       ...

在这个例子中,有11行,得分在0到9的范围内,14行,得分在10到19的范围内,3行得分在20-29的范围内.

有没有简单的方法来设置它?您有什么推荐的吗?

sql t-sql sql-server

169
推荐指数
8
解决办法
16万
查看次数

如何在SQL Server程序/触发器中查找文本?

我有一个会改变的链接服务器.有些程序会像这样调用链接服务器:[10.10.100.50].dbo.SPROCEDURE_EXAMPLE.我们也有触发器做这种工作.我们需要找到[10.10.100.50]用于改变它的所有地方.

在SQL Server Management Studio Express中,我没有在Visual Studio中找到类似"在整个数据库中查找"的功能.一个特殊的系统选择可以帮助我找到我需要的东西吗?

sql-server triggers stored-procedures linked-server

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

如何在T-SQL中转义百分号?

这个问题也有答案,但具体提到了DB2.

如何使用已包含百分号的字符串搜索字符串?该操作员使用的符号来表示通配符.LIKE%LIKE%

t-sql sql-server

169
推荐指数
3
解决办法
9万
查看次数

SQL Server中用户和登录之间的区别

我最近遇到过SQL Server的许多不同领域,我通常不会搞砸.让我困惑的其中一个是登录和用户区域.好像它应该是一个非常简单的话题......

似乎每次登录只能有1个用户,每个用户只能登录1次.

登录可以与多个表相关联,从而将该用户与许多表相关联.

所以我的问题是为什么即使有登录和用户?他们似乎几乎是同一个人.有什么不同,或者我似乎缺少什么?

sql sql-server sql-server-2005

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

您可以为公用表表达式创建嵌套的WITH子句吗?

WITH y AS (
    WITH x AS (
        SELECT * FROM MyTable
    )
    SELECT * FROM x
)
SELECT * FROM y
Run Code Online (Sandbox Code Playgroud)

这样的事情有用吗?我之前尝试过,但我无法让它发挥作用.

sql t-sql sql-server nested common-table-expression

168
推荐指数
3
解决办法
10万
查看次数

如何在SQL中从DateTime格式获取时间?

我想使用SQL Server 2005和2008默认输出使用SQL查询从DateTime列获取时间:

AttDate                   
==
2011-02-09 13:09:00    
2011-02-09 14:10:00    
Run Code Online (Sandbox Code Playgroud)

我想要这个输出:

AttDate                Time 
==
2011-02-09 13:09:00    13:09
2011-02-09 14:10:00    14:10
Run Code Online (Sandbox Code Playgroud)

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

168
推荐指数
6
解决办法
73万
查看次数

如何在SQL Server中编写foreach?

我正在尝试按照for-each的方式实现某些内容,我希望获取返回的select语句的ID并使用它们中的每一个.

DECLARE @i int
DECLARE @PractitionerId int
DECLARE @numrows int
DECLARE @Practitioner TABLE (
    idx smallint Primary Key IDENTITY(1,1)
    , PractitionerId int
)

INSERT @Practitioner
SELECT distinct PractitionerId FROM Practitioner

SET @i = 1
SET @numrows = (SELECT COUNT(*) FROM Practitioner)
IF @numrows > 0
    WHILE (@i <= (SELECT MAX(idx) FROM Practitioner))
    BEGIN

        SET @PractitionerId = (SELECT PractitionerId FROM @Practitioner WHERE idx = @i)

        --Do something with Id here
        PRINT @PractitionerId

        SET @i = @i + 1
    END
Run Code Online (Sandbox Code Playgroud)

目前我有一些看起来像上面的东西,但我得到错误:

列名称'idx'无效. …

t-sql sql-server

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

还原备份时,如何断开所有活动连接?

由于活动连接,我的SQL Server 2005无法还原备份.我怎么强迫它?

sql-server backup sql-server-2005 restore disconnect

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

T-SQL中的IndexOf函数

给定一个电子邮件地址列,我需要找到子符号的@符号位置.

indexof对于T-SQL中的字符串,函数是什么?

寻找返回字符串中子字符串位置的东西.

在C#中

var s = "abcde";
s.IndexOf('c'); // yields 2
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server string

166
推荐指数
4
解决办法
23万
查看次数

ALTER TABLE语句与FOREIGN KEY约束冲突

我在尝试向tblDomare表中添加外键时遇到问题; 我在这做错了什么?

CREATE TABLE tblDomare
(PersNR VARCHAR (15) NOT NULL,
fNamn VARCHAR (15) NOT NULL,
eNamn VARCHAR (20) NOT NULL,
Erfarenhet VARCHAR (5),
PRIMARY KEY (PersNR));

INSERT INTO tblDomare (PersNR,fNamn,eNamn,Erfarenhet)
Values (6811034679,'Bengt','Carlberg',10);

INSERT INTO tblDomare (PersNR,fNamn,eNamn,Erfarenhet)
Values (7606091347,'Josefin','Backman',4);

INSERT INTO tblDomare (PersNR,fNamn,eNamn,Erfarenhet)
Values (8508284163,'Johanna','Backman',1);

CREATE TABLE tblBana
(BanNR VARCHAR (15) NOT NULL,
PRIMARY KEY (BanNR));

INSERT INTO tblBana (BanNR)
Values (1);

INSERT INTO tblBana (BanNR)
Values (2);

INSERT INTO tblBana (BanNR)
Values (3);

ALTER TABLE tblDomare
ADD FOREIGN …
Run Code Online (Sandbox Code Playgroud)

sql database sql-server

166
推荐指数
10
解决办法
21万
查看次数