Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर के लिए CONCAT_WS ()

हम कुछ तरकीबों का उपयोग कर सकते हैं:

वह एक कार्यशील उदाहरण है :

CREATE TABLE foo (
  id INT IDENTITY(1, 1) NOT NULL,
  a VARCHAR(50),
  b VARCHAR(50),
  c VARCHAR(50),
  d VARCHAR(50),
  PRIMARY KEY (id)
);

INSERT INTO foo (a, b, c, d) VALUES ('a', 'b', 'c', 'd');
INSERT INTO foo (a, b, c, d) VALUES (NULL, 'b', NULL, 'd');
INSERT INTO foo (a, b, c, d) VALUES ('a', NULL, NULL, 'd');
INSERT INTO foo (a, b, c, d) VALUES (NULL, NULL, NULL, NULL);
SELECT id,
STUFF(
    COALESCE('; ' + a, '') +
    COALESCE('; ' + b, '') +
    COALESCE('; ' + c, '') +
    COALESCE('; ' + d, ''),
1, 2, '') AS bar
FROM foo
ORDER BY id
| ID | BAR        |
|----|------------|
|  1 | a; b; c; d |
|  2 | b; d       |
|  3 | a; d       |
|  4 | (null)     |

STUFF(..., 1, 2, '') . का उद्देश्य प्रारंभिक विभाजक को हटाना है (2 हमारे मामले में विभाजक लंबाई है)।

यह SQL सर्वर 2005 (और संभवतः पुराने संस्करणों) पर काम करना चाहिए।

नोट:मूल CONCAT_WS() के विपरीत , हमारा संस्करण NULL returns लौटाता है जब सभी आइटम NULL हों . मुझे ईमानदारी से लगता है कि यह एक बेहतर विकल्प है लेकिन फिर भी इसे बदलना आसान होना चाहिए।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कॉलम के लिए डिफ़ॉल्ट मान के रूप में अनुक्रम

  2. एक्सएमएल नोड्स से मूल्यों की क्वेरी कैसे करें?

  3. किसी भिन्न SQL सर्वर पर किसी भिन्न डेटाबेस में तालिका की प्रतिलिपि बनाएँ

  4. SQL सर्वर में छवियों को संग्रहीत करना?

  5. SQL सर्वर प्रबंधन स्टूडियो 2012 में ऑटो वृद्धि प्राथमिक कुंजी