如果我在表中将 12345678、1234567、123456 作为列并使用 sql 创建一个新列,该列将包含删除每个数字的最后两位数字的新数字。新列将有 123456、12345、1234。
有人会帮忙在 Microsoft sql 环境中编写此代码吗
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%
我在整个互联网上搜索堆栈溢出,但我找到的每个示例都只有一行,或者根本不起作用。
我有这张桌子:
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) 这里是这个问题的扩展,我怎样才能获取所有达到允许缺席人数上限的学生的人数。
我试过这个
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
我哪里错了?为什么在添加 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) 我想找到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
我想弄清楚如何设置数据库结构。
有~10000个员工。会有一张表来存储员工的基本信息,还有一张表来存储员工的交易,所以我决定为所有员工创建单独的表来记录他们的交易,这意味着~10000表。
所以我的问题是,创建那么多表(~10000)或您可以建议的任何其他方法是否有效,我将在 LAN 中使用 MySQL 作为数据库和 Java 客户端。
我想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”附近的语法不正确。
这有什么可能吗?
我正在尝试使用 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 级嵌套”。
我有两个要加入的表
|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) 我有一个具有以下结构的 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) 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)
有人可以启发我吗?
这是我的临时表:
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)