小编ype*_*eᵀᴹ的帖子

去除最后两位数字

如果我在表中将 12345678、1234567、123456 作为列并使用 sql 创建一个新列,该列将包含删除每个数字的最后两位数字的新数字。新列将有 123456、12345、1234。

有人会帮忙在 Microsoft sql 环境中编写此代码吗

sql-server

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

错误:未关闭的引号后

WHILE (@7DaysEarlierPartitionIntegerId <= @CurrentPartitionIntegerId)
    BEGIN
        Set @7DaysEarlierPartitionId 
            = CAST(@7DaysEarlierPartitionIntegerId AS char)
        set @sqlCommand 
            = 'Select * from ' 
              + quotename(@RequestUsage_Partition + @7DaysEarlierPartitionId)
              + 'where UserLogin like''r2\rohit.kharade'
        exec(@sqlCommand)
        set @7DaysEarlierPartitionIntegerId 
            = @7DaysEarlierPartitionIntegerId + 1
    END
Run Code Online (Sandbox Code Playgroud)

我收到错误:

字符串 'r2\rohit.kh' 后的非封闭引号。

如何执行 exec 命令 UserLogin =%r2\rohit.kharade%

sql-server t-sql

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

仅返回重复数据

我在整个互联网上搜索堆栈溢出,但我找到的每个示例都只有一行,或者根本不起作用。

我有这张桌子:

TBL_RELATORIOS_TAMANHOS

table_catalog
table_name
column_name
data_type
character_maximum_length
numeric_precision
numeric_scale
Run Code Online (Sandbox Code Playgroud)

在它里面我有所有表中的所有列。我只需要找到那些具有不同精度、大小等的列。

使用 row_number 我得到了这个:

;WITH CTE AS
(
SELECT DISTINCT table_name 'Tabela', 
       column_name 'Coluna',
       character_maximum_length as 'Tamanho', 
       numeric_precision as 'Precisao_Numerica', 
       numeric_scale 'Escala_Numerica'
FROM TBL_RELATORIO_TAMANHOS
)
SELECT *,
    ROW_NUMBER() over ( partition by Tabela,Coluna order by Tabela,Coluna)
FROM CTE
ORDER BY 1,2
Run Code Online (Sandbox Code Playgroud)

有了这个,我可以看到上面有一个的列2,所以这个是重复的(相同的列,不同的大小,精度等)。

| table_Name              | Column_name      | character_maximum_length | numeric_precision | numeric_scale | Row_number |
|-------------------------|------------------|--------------------------|-------------------|---------------|------------|
| ACOES                   | ID_BMF           | 20                       | NULL              | NULL          | 1 …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server

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

如何获得部分计数的总数

这里是这个问题的扩展,我怎样才能获取所有达到允许缺席人数上限的学生的人数。

我试过这个

SELECT COUNT(*) FROM
(
SELECT student_id,
       COUNT(attendance)
FROM   student_attendance
WHERE  attendance = 'ABSENT'
GROUP  BY student_id
HAVING COUNT(attendance) = (SELECT max_allowed
                            FROM   configurations)
) abc
Run Code Online (Sandbox Code Playgroud)

但它不起作用并出现此错误:

未为“abc”的第 2 列指定任何列。

环境: SQL Server 2000

sql-server sql-server-2000

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

为什么我会收到错误消息“'&lt;列名&gt;' 必须出现在 GROUP BY 子句中或用于聚合函数中”?

我哪里错了?为什么在添加 MAX 函数时会收到该消息?

查询涉及:

WITH
   references_cve AS (
      SELECT vulnerability_id, reference
      FROM dim_vulnerability_reference
      WHERE dim_vulnerability_reference.source = 'NVD'
   )
SELECT DISTINCT ON (
      da.ip_address,
      favi.port,
      dv.severity,dp.name, dv.title,
      dv.description,
      fix,
      dv.nexpose_id,
      cve.reference,
      da.host_name,
      dos.description,
      da.last_assessed_for_vulnerabilities,
      davbs.solution_id
   )
   da.ip_address AS IPAddress,
   CASE WHEN favi.port = -1 THEN NULL ELSE favi.port END AS Port,
   dv.severity AS Severity,
   dp.name AS Protocol,
   dv.title AS VulnerabilityName,
   htmlToText(dv.description) AS Summary,
   htmlToText(dv.description) AS Description,
   htmlToText(fix) as Solution,
   'https://www.rapid7.com/db/vulnerabilities/' || dv.nexpose_id as SeeAlso,
   dv.nexpose_id AS NexposeID,
   ''||null as PluginOutput,
   cve.reference …
Run Code Online (Sandbox Code Playgroud)

postgresql group-by errors

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

如何使用“不在”

我想找到promo_id = 1其中不存在的所有代码promo_id = 2

表名: promo_codes

列: id、promo_id、代码

SELECT code FROM promo_codes where promo_id=1 NOT IN

(SELECT code FROM promo_codes where promo_id=2);
Run Code Online (Sandbox Code Playgroud)

我总是得到 0 行返回,即使其中promo_id = 1不存在代码promo_id = 2

mysql

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

我应该为每位员工单独创建一张表还是为所有人创建一张表?

我想弄清楚如何设置数据库结构。

有~10000个员工。会有一张表来存储员工的基本信息,还有一张表来存储员工的交易,所以我决定为所有员工创建单独的表来记录他们的交易,这意味着~10000表。

所以我的问题是,创建那么多表(~10000)或您可以建议的任何其他方法是否有效,我将在 LAN 中使用 MySQL 作为数据库和 Java 客户端。

mysql database-design

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

情况下的结果表达式

我想case在 SQL Server中的表达式中给出结果的表达式。当我检查

链接:案例表达。但我还是很困惑。

例如。

Simple CASE expression: 
CASE input_expression 
     WHEN when_expression THEN result_expression [ ...n ] 
     [ ELSE else_result_expression ] 
END 
Searched CASE expression:
CASE
     WHEN Boolean_expression THEN result_expression [ ...n ] 
     [ ELSE else_result_expression ] 
END
Run Code Online (Sandbox Code Playgroud)

我想将 result_expression 作为以下示例查询。

select * from mytable where
CASE WHEN col1='12' THEN col2 like '%12%' ELSE col3 like '%12%' END
Run Code Online (Sandbox Code Playgroud)

但它给出了错误

关键字“like”附近的语法不正确。

这有什么可能吗?

sql-server case

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

如何使用具有 10 个以上条件的 CASE 语句更新列

我正在尝试使用 CASE 语句更新 SQL Server 2016 中的列,因为我必须根据不同的条件更改值。问题是我有超过 10 个条件,而且 SQL Server 似乎最多只允许 10 个条件级别。那么我该怎么做呢?这是我试图做的:

UPDATE my_table  
SET my_column = CASE 
    WHEN condition1 THEN expression1  
    WHEN condition2 THEN expression2  ...
Run Code Online (Sandbox Code Playgroud)

不是链接服务器,我还没有尝试在CASE表达式中放入 11 个条件。如果您查看文档,您会发现“SQL Server 仅允许在CASE表达式中进行 10 级嵌套”。

sql-server case update sql-server-2016

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

将两个表与包含 null 的键组合在一起

我有两个要加入的表

|id |profit|
| 1 | 1234 |
| 2 | 1345 |
| 4 | 1454 |
| 5 | 1254 |
Run Code Online (Sandbox Code Playgroud)

和另一张桌子

| id | x loss | y loss |
| 2  | 34312  | 4354   |
| 3  | 35614  | 4365   |
| 4  | 36615  | 4321   |
Run Code Online (Sandbox Code Playgroud)

并结合两者,这将是我想要的结果

| id | profit | x loss | y loss |
| 1  | 1234   | Null   | Null   |
| 2  | 1345   | …
Run Code Online (Sandbox Code Playgroud)

null join sql-server

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

以最佳方式生成报告

我有一个具有以下结构的 SQL Server 数据库

CREATE TABLE users (
userid INT IDENTITY PRIMARY KEY CLUSTERED, 
age INT
)
GO
CREATE TABLE userstatus(
userstatusID INT IDENTITY PRIMARY KEY CLUSTERED, 
statusid INT, 
userid INT FOREIGN KEY REFERENCES dbo.users(userid)
)
GO
Run Code Online (Sandbox Code Playgroud)

一些示例数据:

INSERT  INTO dbo.users
        ( age )
VALUES  ( 15  -- age - int
          ),
        ( 20 ),
        ( 25 );

INSERT  INTO dbo.userstatus
        ( statusid, userid )
VALUES  ( 1, 1 ),
        ( 1, 2 ),
        ( 1, 3 ),
        ( 2, …
Run Code Online (Sandbox Code Playgroud)

sql-server

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

Sql 约束中 WITH 选项的目的是什么?

WITH选项 ( STATISTICS_NORECOMPUTE,PAD_INDEX, ALLOW_ROW_LOCKS,ALLOW_PAGE_LOCKS)的用途是什么?

我将以下约束应用于我的一张表,但我不知道这一切意味着什么。

WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, 
      ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
  )
Run Code Online (Sandbox Code Playgroud)

有人可以启发我吗?

sql-server

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

用值替换 NULL

这是我的临时表:

CREATE TABLE #test123(
    c1 float,
    c2 float,
    c3 float,
    c4 float,
    c5 float
);

INSERT #test123(c1,c2,c3,c4,c5)
VALUES (2,3,NULL,1,2),
       (2,NULL,NULL,1,2),
       (2,3,NULL,NULL,2),
       (NULL,3,NULL,1,NULL),
       (2,3,NULL,1,2);
Run Code Online (Sandbox Code Playgroud)

当我运行以下查询来替换第一列中的所有 NULL 时

INSERT INTO #test123 (c1) VALUES (ISNULL(c1,0));
Run Code Online (Sandbox Code Playgroud)

或者

INSERT INTO #test123 (c1) SELECT CASE WHEN c1 IS NULL THEN 0  END AS c1;
Run Code Online (Sandbox Code Playgroud)

我两次都收到错误“无效的列名 'c1'”。

的语法(来源INSERT INTO是:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...); 
Run Code Online (Sandbox Code Playgroud)

null sql-server insert replace isnull

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