标签: t-sql

如何在SSMS中查看ntext或nvarchar(max)中的所有文本?

如何在SQL Server Management Studio中查看NTEXT或NVARCHAR(max)中的所有文本?默认情况下,它似乎只返回前几百个字符(255?),但有时我只想快速查看整个字段,而不必编写程序来执行此操作.即使SSMS 2012仍然有这个问题:(

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

170
推荐指数
6
解决办法
14万
查看次数

在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万
查看次数

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

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

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

t-sql sql-server

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

您可以为公用表表达式创建嵌套的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万
查看次数

我可以使用多个"with"吗?

仅举例来说

With DependencedIncidents AS
(
    SELECT INC.[RecTime],INC.[SQL] AS [str] FROM
    (
        SELECT A.[RecTime] As [RecTime],X.[SQL] As [SQL] FROM [EventView] AS A 
        CROSS JOIN [Incident] AS X
            WHERE
                patindex('%' + A.[Col] + '%', X.[SQL]) > 0
    ) AS INC
)

With lalala AS
(
    SELECT INC.[RecTime],INC.[SQL] AS [str] FROM
    (
        SELECT A.[RecTime] As [RecTime],X.[SQL] As [SQL] FROM [EventView] AS A 
        CROSS JOIN [Incident] AS X
            WHERE
                patindex('%' + A.[Col] + '%', X.[SQL]) > 0
    ) AS INC
)
Run Code Online (Sandbox Code Playgroud)

不起作用."附近的错误".

另外我想首先使用内部第二个.它是真的还是我需要使用临时表?

sql t-sql sql-server-2008

167
推荐指数
2
解决办法
15万
查看次数

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万
查看次数

从DateTime中提取小时数(SQL Server 2005)

我可以使用Day(Date()),提取月和日Month(Date()).我无法提取小时数HOUR(Date()).我收到以下错误.

'HOUR' is not a recognized built-in function name.
Run Code Online (Sandbox Code Playgroud)

我怎样才能提取数小时?

sql t-sql datetime sql-server-2005 hour

165
推荐指数
6
解决办法
47万
查看次数

如何更新SQL Server中的标识列?

我有SQL Server数据库,我想更改标识列,因为它从一个大数字开始,10010它与另一个表相关,现在我有200条记录,我想在记录增加之前解决这个问题.

更改或重置此列的最佳方法是什么?

t-sql sql-server-2008

165
推荐指数
9
解决办法
42万
查看次数