RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-599259

Steven Kirke's questions

Martin Hope
Steven Kirke
Asked: 2025-04-14 20:35:57 +0000 UTC

如何从多个 XML 节点获取特定值到一个字段中

  • 6

存在一个包含两个或多个值的结构。告诉我如何将两个节点的值放入一个字段中。从具有相同 boss_type_id 的节点,在一列中输出 person_fullname --> 经理 1,经理 2

XML 表。表格示例取自用户Yitzhak Khabinsky的回答

在 SQL 中使用 XML 的示例有很多(这个问题就在那里)在 MS SQL 中使用 XML 字段的实用指南

DECLARE @tbl TABLE (id BIGINT IDENTITY PRIMARY KEY, xmldata XML);
INSERT INTO @tbl (xmldata) VALUES
(N'<career_reserve SPXML-FORM="x-local://career_reserve.xmd">
    <tutors>
        <tutor>
            <person_position_name>Руководитель</person_position_name>
            <boss_type_id>7337741311213725357</boss_type_id>
        </tutor>
        <tutor>
            <person_position_name>Менеджер 1</person_position_name>
            <boss_type_id>6243324114636993778</boss_type_id>
        </tutor>
        <tutor>
            <person_position_name>Менеджер 2</person_position_name>
            <boss_type_id>6243324114636993778</boss_type_id>
        </tutor>
    </tutors>
</career_reserve>'),
(N'<career_reserve SPXML-FORM="x-local://career_reserve.xmd">
    <tutors>
        <tutor>
            <person_position_name>Менеджер 2</person_position_name>
            <boss_type_id>6243324114636993778</boss_type_id>
        </tutor>
    </tutors>
</career_reserve>');

查询表。

DECLARE 
     @boss_type_id BIGINT = 7337741311213725357
    ,@hrbr_type_id BIGINT = 6243324114636993778

SELECT 
         b.tutor_boss.value('(person_position_name/text())[1]', 'VARCHAR(MAX)') AS boss_fullname
        ,b.tutor_boss.value('(person_position_name/text())[1]', 'VARCHAR(MAX)') AS boss_position_name
    FROM @tbl
        CROSS APPLY xmldata.nodes('/career_reserve/tutors/tutor[boss_type_id/text()=sql:variable("@boss_type_id")]') AS b(tutor_boss)
        CROSS APPLY xmldata.nodes('/career_reserve/tutors/tutor[boss_type_id/text()=sql:variable("@hrbr_type_id")]') AS hr(tutor_hrbr)
    WHERE xmldata.exist('/career_reserve/tutors/tutor/boss_type_id[text()=sql:variable("@boss_type_id")]') = 1
        AND xmldata.exist('/career_reserve/tutors/tutor/boss_type_id[text()=sql:variable("@hrbr_type_id")]') = 1
sql
  • 1 个回答
  • 48 Views
Martin Hope
Steven Kirke
Asked: 2025-02-16 01:57:16 +0000 UTC

如何在正则表达式中忽略双数?

  • 4

有一个格式为:“任务:

  1. 任务是在08/28之前做某事。
  2. 处理关闭事宜。 “
function disassembleText(text) {
    const disassemble = text.replace(/(\d)/g, '\n$1');
    const crop = disassemble.trim();
    return crop;
};

在输出中我得到格式为“

  1. 任务是在2之前做某事

0 8.

  1. 处理关闭事宜。”

期望结果:

  1. 任务是在08/28之前做某事。
  2. 处理关闭事宜。

你能告诉我如何在正则表达式中忽略双数吗?

javascript
  • 1 个回答
  • 29 Views
Martin Hope
Steven Kirke
Asked: 2025-01-25 05:08:28 +0000 UTC

如何检查 XML 中的所有节点是否具有所需的值?

  • 9

我有一个 XML 结构,其中所需节点有多个值。问题是,如何检查每个节点是否满足所需的条件?我的 SQL 能力不太强,而且我找不到任何有关如何使用节点的有用信息。例如,我需要样本中一名具有 的员工person_id = 74393。如果我理解正确的话,[1]这就像数组中的索引?

XML 示例:

<?xml version="1.0" encoding="utf-8"?>
    <career_reserve SPXML-FORM="x-local://career_reserve.xmd"></career_reserve>
    <tutors>
            <tutor>
                <person_id>74393</person_id>
                <boss_type_id>0x65D4E4D8749A66AD</boss_type_id>
                <is_responsible>0</is_responsible>
            </tutor>
            <tutor>
                <person_id>11111</person_id>
                <boss_type_id>0x56A4BE34269174F2</boss_type_id>
                <is_responsible>0</is_responsible>
            </tutor>
            <tutor>
                <person_id>22222</person_id>
                <boss_type_id>0x56A4BE34269174F2</boss_type_id>
                <is_responsible>0</is_responsible>
            </tutor>
    </tutors>
</career_reserve>

示例请求:

SELECT 
        crs.id,
        tutor.value('(/career_reserve/tutors/tutor/person_fullname)[1]','varchar(max)') as hrbr 
    FROM career_reserves AS crs 
    INNER JOIN career_reserve as cr on crs.id = cr.id
    CROSS APPLY cr.data.nodes('/career_reserve/tutors/tutor') AS q(tutor)
    WHERE crs.code LIKE '%IS-%'
    AND tutor.value('(/career_reserve/tutors/tutor/person_id)[1]','BIGINT') = 74393
sql
  • 1 个回答
  • 45 Views
Martin Hope
Steven Kirke
Asked: 2025-01-20 00:02:43 +0000 UTC

如何跟踪文本区域高度的变化?

  • 5

告诉我,当用鼠标改变文本区域的大小时,是否可以跟踪其高度的变化?当然,也可以在鼠标悬停或类似操作时进行计算。但有没有更简单的选择呢?某种 getter 或 setter,属性观察器?

我用谷歌搜索了答案。

    var $target = $('#descriptionLabel');

    // Инициализация MutationObserver
    var observer = new MutationObserver(function(mutations) {
        mutations.forEach(function(mutation) {
            if (mutation.attributeName === 'style') {
                console.log('Обнаружено изменение стиля:', $target.attr('style'));
                // Реагирование на смену стиля
            }
        });
    });

    // Конфигурация обозревателя: отслеживаем только изменения атрибута 'style'
    var config = { attributes: true, attributeFilter: ['style'] };

    // Запуск наблюдения
    observer.observe($target[0], config);

我决定使用这样的可变高度:

// Наблюдатель textarea с id descriptionLabel.
var observer = new MutationObserver(styleChangedCallback);
observer.observe(document.getElementById('descriptionLabel'), {
    attributes: true,
    attributeFilter: ['style'],
});

// При изменении высоты textarea, меняется высота контейнера conteinerMainEditTask.

function styleChangedCallback(mutations) {
    const newHeight = parseInt(mutations[0].target.style.height, 10);
    const calculateHeight = globalHeightEditTask + newHeight;
    if (calculateHeight >= globalHeightEditTask) {
        console.log('globalHeightEditTask --> ' + calculateHeight);
        $('.conteinerMainEditTask').css('height', calculateHeight);
    }
}

在此处输入图片描述

javascript
  • 1 个回答
  • 64 Views
Martin Hope
Steven Kirke
Asked: 2025-01-17 20:17:31 +0000 UTC

将日期格式 2025-01-13 18:42:23.000 转换为 2 月 27 日2025年

  • 6

告诉我是否可以将“2025-01-13 18:42:23.000”格式的日期转换为“2025 年 2 月 27 日”格式。我知道有CONVERT,但是不适合。

CONVERT(varchar, crs.start_date, 104) AS start_ad

在 JS 中我这样做:

function convertToDateTask(date) {
    const assembler = new Date(date);
    var day = assembler.getDate();
    var monthName = assembler.toLocaleString('default', { month: 'short' });
    var year = assembler.getFullYear();
    return day + ' ' + monthName + ' ' + year;
};

sql
  • 1 个回答
  • 26 Views
Martin Hope
Steven Kirke
Asked: 2025-01-14 23:09:56 +0000 UTC

SQL 中的自定义方法

  • 6

告诉我如何创建自己的方法将全名组装成姓氏和首字母缩写?只是一个返回计算属性和初始化的示例。我感兴趣的是编写函数的语法。

方法示例:

CREATE FUNCTION assemblerFullname (@Fullname VARCHAR(MAX))
    DECLARE @first_name VARCAR(50) = TRIM(SUBSTRING(@Fullname, 1, CHARINDEX(' ', @Fullname)))
RETURNS @first_name

一个请求,其中有两个带有全名的字段(Assigner.fullname,Assigner.fullname),假设在字段输出中的 SELECT 中,可以添加一个将全名处理到结果中的方法 I需要。

SELECT 
        ts.id,
        ts.name,
        ts.assigner_id,
        assigner.fullname,
        ts.executor_id,
        assigner.fullname,
        ts.status,
        ts.value,
        ts.date_plan,
        ts.end_date_plan,
        role.value('(/task/plan)[1]', 'VARCHAR(MAX)') AS description
    FROM tasks AS ts
    LEFT JOIN task AS t ON t.id = ts.id
    LEFT JOIN collaborators AS assigner ON assigner.id = ts.assigner_id
    LEFT JOIN collaborators AS executor ON executor.id = ts.executor_id
    CROSS APPLY t.data.nodes('/task/role_id') AS field(role)
    WHERE role.value('(/task/role_id)[1]', 'BIGINT') = 7459373706232529779
sql
  • 1 个回答
  • 37 Views
Martin Hope
Steven Kirke
Asked: 2025-01-08 01:12:27 +0000 UTC

如果遇到数字,则将文本拆分为行

  • 7

有一行文字“1.制定行动计划,什么也不做。2.再次沉迷于‘狩猎’。3.完成一些任务。”

任务是让它成形

  1. 制定行动计划,然后什么也不做。
  2. 重饮“狩猎”。
  3. 执行哪个线程任务。

const text = "1. Разработать план мероприятий и ни чего не делать. 2. Повторно напиться 'Охоты'. 3. Выполнить какую нить задачу."

function disassembleText(text) {
    const regexp = `/\d/g`;

    var dessembler = text.split(' ');

    for (var key of dessembler) {
        var test = key.replace(regexp, '\n');
        console.log(test);
    }
}

console.log(disassembleText(text))

我尝试使用正则表达式,但替换方法不起作用。或者我错误地转义了正则表达式。

javascript
  • 3 个回答
  • 29 Views
Martin Hope
Steven Kirke
Asked: 2024-12-25 01:24:01 +0000 UTC

光标正在擦除数据。微软SQL

  • 5

我不明白为什么数据会被覆盖。在第一个示例中,我使用了三个记录,例如我找到了三个员工。

在游标中,我在另外 2 个表中进行查询,检查课程是否位于包含已完成课程的表中和包含活动课程的表中,并将其写入变量。如果员工既没有完成也没有参加课程,PRINT 中的记录会出于某种原因消失吗?

create table personTest ( 
    id bigint primary key ,
    name varchar(MAX) not null,
);

insert into personTest values (1, 'Anna');
insert into personTest values (2, 'Andrey');
insert into personTest values (3, 'Kate');

create table activeCource ( 
    id bigint primary key ,
    name varchar(MAX) not null,
    person_id bigint
);

insert into activeCource values (1, 'Cource ololo', 1);
insert into activeCource values (2, 'Cource trololo', 2);


create table passedCource ( 
    id bigint primary key ,
    name varchar(MAX) not null,
    person_id bigint
);

insert into passedCource values (1, 'Cource ololo', 1);
insert into passedCource values (2, 'Cource trololo', 3);

DECLARE  @current_person BIGINT
        ,@person_fullname VARCHAR(MAX)
        ,@course_result VARCHAR(20) = 'Данных нет'

DECLARE @cursor CURSOR

SET @cursor = CURSOR SCROLL FOR
    SELECT 
         cls.id
        ,cls.name
    FROM personTest AS cls

OPEN @cursor

FETCH NEXT FROM @cursor INTO @current_person, @person_fullname
WHILE @@FETCH_STATUS = 0 BEGIN

    SELECT @course_result = (
        SELECT 
            CASE 
                WHEN ISNULL(pls.id, 0) != 0 THEN 'Курс назначен'
                ELSE 'Данных нет'
            END AS is_exists
        FROM activeCource AS pls
        WHERE pls.person_id = @current_person
    ) --например у одного сотрудника (Kate) тут ни чего нет.

    SELECT @course_result = (
        SELECT 
            CASE 
                WHEN ISNULL(pls.id, 0) != 0 THEN 'Курс пройден'
                ELSE 'Данных нет'
            END AS is_exists
        FROM passedCource AS pls
        WHERE pls.person_id = @current_person
    ) 

    PRINT @person_fullname + ' ' + @course_result
    -- Почему то принт выводит только двух сотрудников, а не трех. Понять не могу из за чего. Любой цикл в том же Swift выводит все.
    FETCH NEXT FROM @cursor INTO @current_person, @person_fullname
END

CLOSE @cursor
DEALLOCATE @cursor

sql-server
  • 1 个回答
  • 26 Views
Martin Hope
Steven Kirke
Asked: 2024-10-02 04:24:41 +0000 UTC

如何根据日期(第二列)选择第一列和第三列?

  • 6

我无法理解任务的逻辑。当顾客在特定日期购买食物时,会有一张桌子(在示例中有几个)。并且有一个在同一时间段内访问过或未访问过的商店的列表。

第一个条件是显示在一段时间内访问过和未访问该商店的所有人员。第二个条件是显示在一段时间内访问过或未访问过的商店。

我无法连接这些数据。问题是如何连接第 1 列和第 3 列。也就是说,第 3 列应该显示未访问过或访问过的商店,同时链接人员,反之亦然,如果该人没有访问该商店。根据条款,禁止使用运营商。

NOT IN, IN, NOT EXISTS, EXISTS, UNION, EXCEPT, INTERSECT

我是这样实现的,但是不知道如何选择。

有三个表,Buers 与表关联,Visit、Stores 与 Hanging 关联,Visit 是有客户 ID 和商店 ID 的地方。

买家

create table person
( id bigint primary key ,
  name varchar(MAX) not null,
  age integer not null default 10,
  gender varchar(6) default 'female' not null ,
  address varchar(MAX)
  );

alter table person add constraint ch_gender check ( gender in ('female','male') );

insert into person values (1, 'Anna', 16, 'female', 'Moscow');
insert into person values (2, 'Andrey', 21, 'male', 'Moscow');
insert into person values (3, 'Kate', 33, 'female', 'Kazan');
insert into person values (4, 'Denis', 13, 'male', 'Kazan');
insert into person values (5, 'Elvira', 45, 'female', 'Kazan');

商店

create table pizzeria
(id bigint primary key ,
 name varchar(50) not null ,
 rating numeric not null default 0);

alter table pizzeria add constraint ch_rating check ( rating between 0 and 5);

insert into pizzeria values (1,'Pizza Hut', 4.6);
insert into pizzeria values (2,'Dominos', 4.3);
insert into pizzeria values (3,'DoDo Pizza', 3.2);
insert into pizzeria values (4,'Papa Johns', 4.9);
insert into pizzeria values (5,'Best Pizza', 2.3);
insert into pizzeria values (6,'DinoPizza', 4.2);

买家来访

create table person_visits
(id bigint primary key ,
 person_id bigint not null ,
 pizzeria_id bigint not null ,
 visit_date date not null default GETDATE(),
 constraint uk_person_visits unique (person_id, pizzeria_id, visit_date),
 constraint fk_person_visits_person_id foreign key  (person_id) references person(id),
 constraint fk_person_visits_pizzeria_id foreign key  (pizzeria_id) references pizzeria(id)
 );

insert into person_visits values (1, 1, 1, '2022-01-01');
insert into person_visits values (2, 2, 2, '2022-01-01');
insert into person_visits values (3, 2, 1, '2022-01-02');
insert into person_visits values (4, 3, 5, '2022-01-03');
insert into person_visits values (5, 3, 6, '2022-01-04');
insert into person_visits values (6, 4, 5, '2022-01-07');
insert into person_visits values (7, 4, 6, '2022-01-08');
insert into person_visits values (8, 5, 2, '2022-01-08');
insert into person_visits values (9, 5, 6, '2022-01-09');
insert into person_visits values (10, 6, 2, '2022-01-09');
insert into person_visits values (11, 6, 4, '2022-01-01');
insert into person_visits values (12, 7, 1, '2022-01-03');
insert into person_visits values (13, 7, 2, '2022-01-05');

第一个请求,我选择在特定日期访问商店的员工

DECLARE @DataMin DATE = '2022-01-01';
DECLARE @DataMax DATE = '2022-01-03';

CREATE TABLE ##ResultVisitPersons
(namePerson NVARCHAR(100), resultVisit BIT, visitDuringPeriod NVARCHAR(100), pizzeriaName NVARCHAR(100), pizzeriaID INT)

INSERT INTO ##ResultVisitPersons
SELECT
    visit.name,
    visit.resultVisit,
    visit.visitDuringPeriod,
    visit.pizzeriaName,
    visit.pizzeria_id
FROM (
  SELECT 
    person.name,
    CASE 
        WHEN person_visits.visit_date BETWEEN @DataMin AND @DataMax THEN 1
        ELSE 0
    END AS resultVisit,
    CASE 
        WHEN person_visits.visit_date BETWEEN @DataMin AND @DataMax THEN LEFT(CONVERT(VARCHAR, person_visits.visit_date, 104), 10)
        ELSE 'NULL'
    END AS visitDuringPeriod,
    person_visits.pizzeria_id,
    pizzeria.name as pizzeriaName
FROM person_visits
JOIN person ON person.id = person_visits.person_id
JOIN pizzeria ON pizzeria.id = person_visits.pizzeria_id
) visit

第二个请求是同一时间段内商店访问的样本。

CREATE TABLE ##ResultVisitPizzeria
(visitDuringPeriod BIT, result NVARCHAR(100), namePizzeria NVARCHAR(100), id INT)

INSERT INTO ##ResultVisitPizzeria
SELECT 
    CASE 
        WHEN person_visits.visit_date BETWEEN @DataMin AND @DataMax THEN 1
        ELSE 0
    END AS visitDuringPeriod,
        CASE 
        WHEN person_visits.visit_date BETWEEN @DataMin AND @DataMax THEN N'Ресторан посещали'
        ELSE N'Ресторан не посещали'
    END AS isVisitDuringPeriod,
    pizzeria.name,
    pizzeria.id
FROM person_visits
JOIN pizzeria ON pizzeria.id = person_visits.pizzeria_id

在此输入图像描述 在此输入图像描述 在此输入图像描述

sql
  • 1 个回答
  • 42 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5