Maison base de données tutoriel mysql SQL 字段charindex,stuff,for xml path('') 操作字

SQL 字段charindex,stuff,for xml path('') 操作字

Jun 07, 2016 pm 02:56 PM
for sql xml 字段

很久没来这儿了 贴一个之前用到的SQL代码 今天在处理一个功能的时候遇到一些功能解决问题 如:表 [sql] CREATE TABLE demo( demo_id int identity primary key , demo_name varchar (50) ) INSERT INTO demo VALUES ( '房地产开发' ) INSERT INTO demo VALUE

很久没来这儿了 贴一个之前用到的SQL代码


今天在处理一个功能的时候遇到一些功能解决问题

如:表

[sql] 
  1. CREATE TABLE demo(  
  2. demo_id int identity primary key,  
  3. demo_name varchar(50)  
  4. )  
  5.   
  6. INSERT INTO demo VALUES('房地产开发')  
  7. INSERT INTO demo VALUES('房地产经纪/销售')  
  8. INSERT INTO demo VALUES('建筑业/工程/施工')  
CREATE TABLE demo( demo_id int identity primary key, demo_name varchar(50) ) INSERT INTO demo VALUES('房地产开发') INSERT INTO demo VALUES('房地产经纪/销售') INSERT INTO demo VALUES('建筑业/工程/施工') 1    房地产开发
2    房地产经纪/销售
3    建筑业/工程/施工

另一表demo_test

[sql] 
  1. CREATE TABLE demo_test(  
  2. test_id int identity primary key,  
  3. demo_ids varchar(500)  
  4. )  
CREATE TABLE demo_test( test_id int identity primary key, demo_ids varchar(500) )1    1,2,3
2    2,3

的demo_ids 中存储了如:1,2,3

想通过SQL获取demo_ids 对应的demo_name的值

如上想直接用SQL获取demo_test中demo_ids对应的值=>房地产开发,房地产经纪/销售,建筑业/工程/施工

对于用C#代码的话 相信这个没有任何难度就能实现

以下提供sql解决方案:

首先解决获取多个项的问题 这儿使用:charindex

[html] 
  1. select demo_name from demo where charindex(CONVERT(VARCHAR,demo_id)+',','1,2,3'+',')>0   
select demo_name from demo where charindex(CONVERT(VARCHAR,demo_id)+',','1,2,3'+',')>0 这样就获取到了


房地产开发
房地产经纪/销售
建筑业/工程/施工

 

下一步就是将查询得到的值合并 这儿用到:stuff,ltrim, for xml path('')

[sql]
  1. SELECT stuff( (select ','+ltrim(demo_name) from demo   
  2.                where charindex(CONVERT(VARCHAR,demo_id)+',','1,2,3'+',')>0 for xml path('') ),1,1,'')  
SELECT stuff( (select ','+ltrim(demo_name) from demo                where charindex(CONVERT(VARCHAR,demo_id)+',','1,2,3'+',')>0 for xml path('') ),1,1,'')如上 将两表联合查询就能得到想要的结果: [sql] 
  1. SELECT t.test_id, demoName=(SELECT stuff( (select ','+ltrim(demo_name) from demo   
  2.                        where charindex(CONVERT(VARCHAR,demo_id)+',',t.demo_ids+',')>0 for xml path('') ),1,1,''))  
  3. from demo_test t  
SELECT t.test_id, demoName=(SELECT stuff( (select ','+ltrim(demo_name) from demo                        where charindex(CONVERT(VARCHAR,demo_id)+',',t.demo_ids+',')>0 for xml path('') ),1,1,'')) from demo_test t

1    房地产开发,房地产经纪/销售,建筑业/工程/施工
2    房地产经纪/销售,建筑业/工程/施工

这样的查询就可以到达预期效果了
CREATE TABLE demo(
demo_id int identity primary key,
demo_name varchar(50)
)

INSERT INTO demo VALUES('房地产开发')
INSERT INTO demo VALUES('房地产经纪/销售')
INSERT INTO demo VALUES('建筑业/工程/施工')

--------结果--------
1    房地产开发
2    房地产经纪/销售
3    建筑业/工程/施工


CREATE TABLE demo_test(
test_id int identity primary key,
demo_ids varchar(500)
)

--------结果--------
1    1,2,3
2    2,3


--------最终查询语句与结果----------
SELECT t.test_id, demoName=(SELECT stuff( (select ','+ltrim(demo_name) from demo
                       where charindex(CONVERT(VARCHAR,demo_id)+',',t.demo_ids+',')>0 for xml path('') ),1,1,''))
from demo_test t

1    房地产开发,房地产经纪/销售,建筑业/工程/施工
2    房地产经纪/销售,建筑业/工程/施工
Copier après la connexion
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

17 façons de résoudre l'écran bleu kernel_security_check_failure 17 façons de résoudre l'écran bleu kernel_security_check_failure Feb 12, 2024 pm 08:51 PM

Kernelsecuritycheckfailure (échec de la vérification du noyau) est un type de code d'arrêt relativement courant. Cependant, quelle qu'en soit la raison, l'erreur d'écran bleu rend de nombreux utilisateurs très angoissés. Laissez ce site présenter soigneusement 17 types de solutions aux utilisateurs. 17 solutions à l'écran bleu kernel_security_check_failure Méthode 1 : Supprimer tous les périphériques externes Lorsqu'un périphérique externe que vous utilisez est incompatible avec votre version de Windows, l'erreur d'écran bleu Kernelsecuritycheckfailure peut se produire. Pour ce faire, vous devez débrancher tous les périphériques externes avant d'essayer de redémarrer votre ordinateur.

Quelle est la différence entre HQL et SQL dans le framework Hibernate ? Quelle est la différence entre HQL et SQL dans le framework Hibernate ? Apr 17, 2024 pm 02:57 PM

HQL et SQL sont comparés dans le framework Hibernate : HQL (1. Syntaxe orientée objet, 2. Requêtes indépendantes de la base de données, 3. Sécurité des types), tandis que SQL exploite directement la base de données (1. Normes indépendantes de la base de données, 2. Exécutable complexe requêtes et manipulation de données).

Puis-je ouvrir un fichier XML à l'aide de PowerPoint ? Puis-je ouvrir un fichier XML à l'aide de PowerPoint ? Feb 19, 2024 pm 09:06 PM

Les fichiers XML peuvent-ils être ouverts avec PPT ? XML, Extensible Markup Language (Extensible Markup Language), est un langage de balisage universel largement utilisé dans l'échange et le stockage de données. Comparé au HTML, XML est plus flexible et peut définir ses propres balises et structures de données, rendant le stockage et l'échange de données plus pratiques et unifiés. PPT, ou PowerPoint, est un logiciel développé par Microsoft pour créer des présentations. Il fournit un moyen complet de

Utilisation de l'opération de division dans Oracle SQL Utilisation de l'opération de division dans Oracle SQL Mar 10, 2024 pm 03:06 PM

"Utilisation de l'opération de division dans OracleSQL" Dans OracleSQL, l'opération de division est l'une des opérations mathématiques courantes. Lors de l'interrogation et du traitement des données, les opérations de division peuvent nous aider à calculer le rapport entre les champs ou à dériver la relation logique entre des valeurs spécifiques. Cet article présentera l'utilisation de l'opération de division dans OracleSQL et fournira des exemples de code spécifiques. 1. Deux méthodes d'opérations de division dans OracleSQL Dans OracleSQL, les opérations de division peuvent être effectuées de deux manières différentes.

Comparaison et différences de syntaxe SQL entre Oracle et DB2 Comparaison et différences de syntaxe SQL entre Oracle et DB2 Mar 11, 2024 pm 12:09 PM

Oracle et DB2 sont deux systèmes de gestion de bases de données relationnelles couramment utilisés, chacun possédant sa propre syntaxe et ses propres caractéristiques SQL. Cet article comparera et différera la syntaxe SQL d'Oracle et de DB2, et fournira des exemples de code spécifiques. Connexion à la base de données Dans Oracle, utilisez l'instruction suivante pour vous connecter à la base de données : CONNECTusername/password@database Dans DB2, l'instruction pour vous connecter à la base de données est la suivante : CONNECTTOdataba.

Explication détaillée de la fonction Définir la balise dans les balises SQL dynamiques MyBatis Explication détaillée de la fonction Définir la balise dans les balises SQL dynamiques MyBatis Feb 26, 2024 pm 07:48 PM

Interprétation des balises SQL dynamiques MyBatis : explication détaillée de l'utilisation des balises Set MyBatis est un excellent cadre de couche de persistance. Il fournit une multitude de balises SQL dynamiques et peut construire de manière flexible des instructions d'opération de base de données. Parmi elles, la balise Set est utilisée pour générer la clause SET dans l'instruction UPDATE, qui est très couramment utilisée dans les opérations de mise à jour. Cet article expliquera en détail l'utilisation de la balise Set dans MyBatis et démontrera ses fonctionnalités à travers des exemples de code spécifiques. Qu'est-ce que Set tag Set tag est utilisé dans MyBati

Que signifie l'attribut d'identité dans SQL ? Que signifie l'attribut d'identité dans SQL ? Feb 19, 2024 am 11:24 AM

Qu'est-ce que l'identité en SQL ? Des exemples de code spécifiques sont nécessaires. En SQL, l'identité est un type de données spécial utilisé pour générer des nombres à incrémentation automatique. Il est souvent utilisé pour identifier de manière unique chaque ligne de données dans une table. La colonne Identité est souvent utilisée conjointement avec la colonne clé primaire pour garantir que chaque enregistrement possède un identifiant unique. Cet article détaillera comment utiliser Identity et quelques exemples de code pratiques. La manière de base d'utiliser Identity consiste à utiliser Identit lors de la création d'une table.

Comment résoudre l'erreur 5120 dans SQL Comment résoudre l'erreur 5120 dans SQL Mar 06, 2024 pm 04:33 PM

Solution : 1. Vérifiez si l'utilisateur connecté dispose des autorisations suffisantes pour accéder ou utiliser la base de données, et assurez-vous que l'utilisateur dispose des autorisations appropriées ; 2. Vérifiez si le compte du service SQL Server est autorisé à accéder au fichier spécifié ou ; dossier et assurez-vous que le compte dispose des autorisations suffisantes pour lire et écrire le fichier ou le dossier ; 3. Vérifiez si le fichier de base de données spécifié a été ouvert ou verrouillé par d'autres processus, essayez de fermer ou de libérer le fichier et réexécutez la requête ; . Essayez en tant qu'administrateur, exécutez Management Studio en tant que etc.

See all articles