小编Phi*_*lip的帖子

从 sys.database_files 返回数据库名称

有谁知道如何返回数据库名称?我似乎不知道如何sys.database_files加入sys.databases

SELECT
    a.NAME as FileName,
    FG.name as FileGroup,
    a.physical_name as FilePath,
    a.type_desc as FileType,
    CONVERT(DECIMAL(12,2),ROUND(a.size/128.000,2)) AS [Size],
    CONVERT(DECIMAL(12,2),ROUND(FILEPROPERTY(a.name,'SpaceUsed')/128.000,2)) AS [Used] ,
    CONVERT(DECIMAL(12,2),ROUND((a.size-FILEPROPERTY(a.name,'SpaceUsed'))/128.000,2)) AS [Free]
FROM 
    sys.database_files a
LEFT JOIN sys.filegroups FG ON 
    FG.data_space_id = a.data_space_id
Run Code Online (Sandbox Code Playgroud)

sql sql-server

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

只显示只包含 [a-z0-9] 的行

我有一个 varchar 列,它应该只包含字母和数字,而不能包含其他字符,例如;: , @ 等等

我认为这会起作用,但它不起作用:

select * from table
where field NOT LIKE '[a-z0-9]'
Run Code Online (Sandbox Code Playgroud)

regex t-sql sql-server

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

将字节转换为千字节/兆字节

我有一个附件表,以字节为单位存储文档的大小。

我需要以 KB 或 MB 显示所有文档的结果集。如果文档小于 1MB,则以 KB 为单位;如果文档大于 1MB,则以 MB 为单位。

目前我的查询中有这个,但我正在努力使显示在舍入方面正确格式化。

    CASE WHEN D.DocumentSize < 1000000 THEN
        CONCAT(D.DocumentSize / 1024, 'KB')
    ELSE
        CONCAT(D.DocumentSize / 1048576, 'MB')
    END AS DocumentSizeText,
Run Code Online (Sandbox Code Playgroud)

以下是一些示例值:

87336
1458250
346
8434
8434
Run Code Online (Sandbox Code Playgroud)

346 字节也将显示 0KB,因此理想情况下显示 1KB 将是理想的最小值。

sql t-sql sql-server

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

如何在开始日期和结束日期之间返回记录

我有以下查询,这些查询返回开始日期或结束日期在指定的日期范围之间的记录。

DECLARE @ReportStartDate date = '01 Apr 2019'
DECLARE @ReportEndDate date = '01 May 2019'

select * from #temp
where
            (StartDate between @ReportStartDate and @ReportEndDate) or 
            (EndDate between @ReportStartDate and @ReportEndDate) or 
            (EndDate is null)
Run Code Online (Sandbox Code Playgroud)

我的问题是开始日期为'2019年3月1日',结束日期为'2019年8月4日',这意味着它在2019年4月1日至2019年5月1日的日期范围内,但我的标准不满足那。

我如何包括这些类型的记录?

样本数据:

CREATE TABLE #temp
(
    ID int,
    StartDate datetime,
    EndDate datetime NULL
)

insert into #temp
(
    ID,
    StartDate,
    EndDate
)
select
    1,
    '01 Mar 2019',
    NULL
union all
select
    2,
    '01 Mar 2019',
    '04 Aug 2019'
union all
select
    3,
    '14 Jul …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

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

标签 统计

sql-server ×4

sql ×3

t-sql ×3

regex ×1