我有一个看起来像这样的字符串:
'1.25,5.34,6.9,8.6547,2.3'
Run Code Online (Sandbox Code Playgroud)
我想将每个逗号分隔值存储到像这样的变量中,但以编程方式在 T-SQL 中存储:
Declare @Var1 float
Set @Var1 = 1.25
...
@Var2 = 5.34
@Var3 = 6.9
Run Code Online (Sandbox Code Playgroud)
等等等等..
我该怎么做呢?
SQLite 新手,尝试了解 upsert 功能。
我有一个包含以下 DDL 的表:
CREATE TABLE contacts (
contact_id INTEGER PRIMARY KEY,
first_name TEXT NOT NULL,
last_name TEXT NOT NULL,
email TEXT NOT NULL UNIQUE,
phone TEXT NOT NULL UNIQUE
);
Run Code Online (Sandbox Code Playgroud)
假设我插入一条记录:
INSERT INTO contacts (contact_id, first_name, last_name, email, phone)
VALUES (1, 'John', 'Jones', 'jjones@gmail.com', '888-867-5309');
Run Code Online (Sandbox Code Playgroud)
我怎样才能做一个同时考虑 UNIQUE 约束 ( email) 和 PK 约束 ( contact_id) 的更新插入,以便它处理这两种情况,因为我不知道哪个约束会失败。
我尝试这样做:
INSERT INTO contacts (contact_id, first_name, last_name, email, phone)
VALUES (1, 'John', 'Jones', 'john.jones@gmail.com', '888-867-5309')
ON CONFLICT (contact_id, …Run Code Online (Sandbox Code Playgroud) 我有一个表,其中包含一堆用逗号分隔的数字。
我想从表中检索字符串中包含确切数字而不是部分数字的行。
例子:
CREATE TABLE IF NOT EXISTS `teams` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`uids` text NOT NULL,
`islive` tinyint(1) NOT NULL DEFAULT '1',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
INSERT INTO `teams` (`id`, `name`, `uids`, `islive`) VALUES
(1, 'Test Team', '1,2,8', 1),
(3, 'Test Team 2', '14,18,19', 1),
(4, 'Another Team', '1,8,20,23', 1);
Run Code Online (Sandbox Code Playgroud)
我想搜索 1 在字符串中的位置。
目前,如果我使用 Contains 或 LIKE,它会返回所有带有 1 的行,但 18、19 等不是 1,但其中确实有 1。
我需要做正则表达式吗?
下面是表格:
关系表
| 西德 | PID |
|---|---|
| 101 | 第202章 |
| 第566章 | 第322章 |
| 第875章 | 第345章 |
人桌
| ID | 姓名 | 性别 |
|---|---|---|
| 101 | 里亚 | F |
| 第566章 | 安缦 | 中号 |
| 第202章 | 拉凯什 | 中号 |
| 第875章 | 幸运的 | 中号 |
| 第202章 | 瑞娜 | F |
| 第322章 | 雷娜 | F |
| 第345章 | 罗希特 | 中号 |
| 第322章 | 莫希特 | 中号 |
| 第345章 | 米娜 | F |
输出
| 孩子 | 母亲 | 父亲 |
|---|---|---|
| 里亚 | 瑞娜 | 拉凯什 |
| 安缦 | 雷娜 | 莫希特 |
| 幸运的 | 罗希特 | 米娜 |
我试过这个:
SELECT mother,
father
FROM (
SELECT id,
name,
sum(
CASE
WHEN gender = 'F' THEN 1
ELSE 0) AS mother,
sum (
CASE …Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我有两个 edittext 并且我想要当单击打开的两个 edittext datepicker 对话框并在编辑文本中设置两个值时。
final DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
myCalendar.set(Calendar.YEAR, year);
myCalendar.set(Calendar.MONTH, monthOfYear);
myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
updateDOB();
updateDOA();
}
};
doa.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new DatePickerDialog(FamilyEditActivity.this, date, myCalendar
.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
myCalendar.get(Calendar.DAY_OF_MONTH)).show();
}
});
spoucedob.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new DatePickerDialog(FamilyEditActivity.this, date, myCalendar
.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
myCalendar.get(Calendar.DAY_OF_MONTH)).show();
}
});
}
private void updateDOA() …Run Code Online (Sandbox Code Playgroud) 我遇到的情况是有一个这样的关系表:
eaters:
id name fruit
1 jack banana
2 jack apple
3 jane banana
4 jane apple
5 jane orange
6 richard banana
7 richard apple
Run Code Online (Sandbox Code Playgroud)
现在,谁吃过和“杰克”一样的水果?
例如在上表中,'Richard' 就是答案。
我想到的伪查询是:
SELECT name AS the_guy
FROM eaters
WHERE
(SELECT fruit FROM eaters WHERE name=the_guy) =
(SELECT fruit FROM eaters WHERE name='jack')
Run Code Online (Sandbox Code Playgroud)
我不知道这在 MySQL 中是否可行。现在我获取了整个表格并使用 PHP 从结果中提取答案,这不是一个好方法。有什么建议?
试图将背景设置为文本。问题是下一个错误——视图中的setBackground不能应用于(int)
这是我的代码
if (restaurants.get(position).getOffers() != null) {
viewHolder.offerOrNew.setText("%");
viewHolder.offerOrNew.setBackground(R.drawable.offers_style);
}
Run Code Online (Sandbox Code Playgroud)
错误是在这一行中相应地引起的
viewHolder.offerOrNew.setBackground(R.drawable.offers_style);
Run Code Online (Sandbox Code Playgroud) 警告:#1287 在表达式中设置用户变量已被弃用,并将在未来版本中删除。考虑替代方案:“SET 变量 = 表达式,...”或“SELECT 表达式 INTO 变量”。
这是 MySQL 8.0.21 吐出的内容。该代码可以工作......但我也需要它在未来的版本中工作......所以我的问题是这个警告的正确方法是什么?
我需要将一个变量设置为某个数字(我将通过行的 ID 获得该数字)。我需要在每个 SET 语句中将其加 1。
我应该如何更改此代码以使警告消失?
SET @fromorder = (SELECT `order` FROM forms WHERE id=5);
/* SET @fromorder = 4; - so this is the same in the example below */
UPDATE forms SET `order` = @fromorder := @fromorder + 1 WHERE `order` > -1 and `order` <= 4 ORDER BY `order` ASC;
SET @fromorder = null;
Run Code Online (Sandbox Code Playgroud)
据我了解,问题的根源在于:
`order` = @fromorder := @fromorder + 1
Run Code Online (Sandbox Code Playgroud)
我想这需要改变吗?
所以由此可知: …
我的表结构如下
| 产品编号 | 时期 | 销售量 | 利润 |
|---|---|---|---|
| x1 | L13 | 100 美元 | 10 美元 |
| x1 | L26 | 200 美元 | 20 美元 |
| x1 | L52 | 300 美元 | 30 美元 |
| x2 | L13 | 500 美元 | 110 美元 |
| x2 | L26 | 600 美元 | 120 美元 |
| x2 | L52 | 700 美元 | 130 美元 |
我想旋转期间列并在这些列中显示销售价值和利润。我需要一张如下表。
| 产品编号 | 销售_L13 | 销售_L26 | 销售_L52 | 利润_L13 | 利润_L26 | 利润_L52 |
|---|---|---|---|---|---|---|
| x1 | 100 美元 | 200 美元 | 300 美元 | 10 美元 | 20 美元 | 30 美元 |
| x2 | 500 美元 | 600 美元 | 700 美元 | 110 美元 | 120 美元 | 130 美元 |
我正在使用雪花来编写查询。我尝试使用pivot雪花函数,但只能指定一个聚合函数。
任何人都可以帮助我如何实现这个解决方案?
任何帮助表示赞赏。 …
在线搜索,很容易找到获取 SQLite 表中所有列信息的方法:使用table_info(name)带有表名称的 pragma。但我见过的每个 SQL 数据库都有某种方法可以一次性获取整个数据库的所有列的信息,结果集中的某些列链接回拥有相关列的表。
SQLite 支持这个吗?或者只能通过对每个单独的表进行单独的查询来完成?
sql ×6
mysql ×3
android ×2
java ×2
join ×2
sqlite ×2
contains ×1
group-by ×1
oracle ×1
pivot ×1
regex ×1
row-number ×1
snowflake-cloud-data-platform ×1
sql-insert ×1
sql-like ×1
sql-server ×1